Category: Блогинки

Как да изтрием WordPress (spam) коментари директно от базата

Никой не е защитен от спама под всякаквата му форма – email, в коментарите или по друг начин.

И понеже на marvin живее сравнително посещаван сайт секцията му с коментари беше катастрофална. Не бях го поглеждал от няколко месеца и като влязах в админ панела му ме побиха тръпки – над 12 000 коментара.

Проблема – Как ще разгранича кои коментари са спам и кои не са?

Решението – изпозлвах (с малко скептицизъм) плъгина, който идва при нова инсталация на WordPress – Akismet. За да заработи трябва да се регистрираме в сайта akismet.com (с WordPress.com или Google.com акаунтите си) и да вземем API кода от сайта. След това активираме плъгина и в настройките му бухаме API key-а). След като всичко беше конфигурирано и казах на плъгина да маркира съмнителните коментари като SPAM отидох да проверя и нищо не се случи. Оказа се, че плъгина е по-умен отколкото очаквах – беше си сложил всички коментари в опашка и асинхронно анализираше всеки. След час имах около 14 500 коментара маркирани като спам. Проверих на random стотина и всичко изглеждаше да е ок.

 

Другия проблем – По някаква причина се оказа, че не мога да трия коментарите през admin панела. Трябваше да намеря решение в което да взема всички коментари маркирани като SPAM и да ги изрия през базата данни.

Другото решение – За работа с базата данни използвах mysql console, но можете да използвате и phpMyAdmin (след като проключите работа с него го изтрийте или забранете достъпа до него, че става страшно ако до забравите).
Следните заявки ще ви свършат работа (имайте предвид, че префикса, който съм използвал е wp_, но на вашата инсталация може да е нещо различно):

Изтриване на всички неодобрени от администратора коментари:

DELETE from wp_comments WHERE comment_approved =  '0';

Изтриване на всички ОДОБРЕНИ коментари:

DELETE from wp_comments WHERE comment_approved =  '1';

Всички изтрити коментари, които стоят в статус Trash:

DELETE from wp_comments WHERE comment_approved = 'trash';

И накрая и най-важното – всички коментари маркирани като SPAM:

DELETE from wp_comments WHERE comment_approved = 'spam'; 

 

Tip – Ако искате да видите съдържанието на таблиците можете да направите това със select. Например ако искам да видя всички SPAM коментари ще пусна тази заявка:

SELECT * from wp_comments WHERE comment_approved = ‘spam’;

Със здраве и гледайте да не затриете нещо важно. Ако имате въпроси можете да ме питате тук преди да действате. Ако мога ще помогна.

10.10.2017

В неделя си сецнах кръста и вчера работих от нас. Не е работа това с кръста така, че се пазете.

Иначе днес излязоха видеата от SeConf 2017 – Berlin. Изглежда обещаващо и препоръчвам. Аз също ще ги изгледам тези дни.

Другото интересно нещо с което се сблъсках тези дни e тази уязвимост в WordPress. Оказва се, че макар и трудно, има хора, които са успели чрез манипулиране на HOST post property да “обърка” функцията за изпращане на мейли на WP. В линка от горе PoC-а (Proof of Concept) показва ясно, че с няколко реда код и “правилно” конфигуриран sendmail може да се репродуцира (баси тъпата дума) проблема.
От WordPress още не са го оправили така, че честито на всички – всеки от нас си има по един 0-day vulnerability. Решението за сега е 2FA като Rublon, който изпозлвам аз в този блог – работи бързо и лесно, а 2FA е реализирана със сканиране на баркод директно от екрана.

 

И последно, обещавам – в офиса си говорихме за git и колегите размениха по няколко линка за git tutorials:

  • git-flow cheatsheet – страхотна визуализация и огранизация на git процесите;
  • learngitbranching.js – още по-страхотна интерактивна демонстрация на git;
  • git no deepshit – вече няколко пъти е преминавало през блога – страхотно обяснено четиво, лично мое любимо до момента.

Ще бъда лектор на Europe Code Week Varna, 07.10.2017

Преди седмица бях поканен от огранизаторите на Europe Code Week Varna да бъда лектор за втори път на формата. Първия път беше преди две години в неприветливата и студена сграда на Стоматологията, но пък залата беше на 100% пълна (около сто човека), което беше и най-голямото ми представяне до момента.

Тазгодишното събитие ще се проведе в далеч по-приветливата обстановка на хотел “Черно Море”, а моята лекция ще започне от 10:00 часа.
Пак ще си говорим за QA, за ученици и струденти, за основните и толкова важни неща, които често се пропускат дори и от хората, които вече са в бранша. Ще си говорим и за това колко е важно да знаем основите на quality assurance без значение дали сме програмисти, мениджъри или каквито и да е било.
Най-накрая ще говоря и за това, че да си добър Quality Assurance трябва да си малко биполярен (в последните 2 лекции буквално ми беше забранено да говоря за това), ще си говорим за хейта в нашия бранш и за още едно-две интересни и рядко споменавани неща.

 

Линк към събитието можете да видите тук и обърнете внимание, че има безплатна регистрация. Аз започвам от 10:00 и ще се радвам да се видим там.

16.09.2017 – Приготовлението

Петък вечер в нас беше голям купон. Бях обърнал цялата къща с краката нагоре и бях изкарал почти всичката си вело екипировка. Кочината придоби още по-мащабни размери когато котката Иво прецизно дърпаше всяка ластичка, търкалящ се предмет или каквото и да е висящо нещо, която намери.

В един часа вечерта пуснах едно бързо пране с подбраните неща за голямото каране и си продължих с другите си задачки. Тук искам да отбележа, че сутринта станах в 6:30 за да се видя с приятели на по кафе на плажа. Имах чувството, че чаках пералнята 2 часа и накрая към 3:00 се предадох.

Днес за около десети път за последните 2 седмици ходих да ми видят колелото (за това блог пост няма да има, че още ми държи влага) и после хапнахме торти-морти в Кафе-Мафе (да, наистина так се казва кафенето) и по задачки.

Всичко около голямото каране е приготвено (включително и демонтажа на решетката между багажника на колата и задните седалки) и ме очаква.

 

Опитвам се да не се отдам изцяло на вълнението, но май не ми се получава.

Голямото каране наближава

Мога с ръка на сърце да кажа, че не съм се вълнувал толкова много от месеци.
Голямото ми каране ще започне само след четири дни. 90% от техниката и екипировката са подготвени, ума ми – също.

Понеже имаше проблем с монтирането на багажника (като педалирам прав гумата се забиваше в рамката?!?) към рамката взех решението да отида с колата до Велико Търново и оттам с колелото до Казанлък. Оттам вече ще видя дали ще изкача връх Шипка и Бузлуджа или ще оставя за някой от следващите дни. След това следва прибиране във Велико Търново, транспорт, преспиване в колата и старт на следващия ден на ново и вълнуващо място и така следващите няколко дни. Основния ми таргет ще са ~100 км. дневно.

Утре остава да си свърша задачките в офиса и после това, което ще бъда аз следващата седмица ще е колоездене и авантюризъм.

 

Благодаря много на всички, които вярват в мен и на тези, коит овярват, но не одобряват това мое начинание :)

 

Седмица след това каране ще последва участието ми в MTB състезанието “Зелен маратон 2017” на което ще се пусна с 20 км. колоездене и 10 бягане. Тук можете да видите как преживях първия си дуатлон.

15.09.2017 – Честит (първи) учебен ден

Още помня първия си учебен ден в девети клас – ново училище, нови хора, нов директор, който беше много висок и приличаше на Джорд Вашингтон. Той дойде при мен, стисна ми силно ръката и каза – “Добре дошъл в СОУ Димитър Талев”.

Двайсеттина състезания (повечето спечелени) по-късно, много нови приятели и брилиантни учители (начело , но не само, с г-жа Маринела Горанова, която наля огромна част в фундамента, който използвам на дневна база в работата си) дойде последния учебен ден. Помня, че ми се плачеше. Исках да изкарам наново последната си година, исках пак да влизаме в абсурдни приключения, да се състезавам, да уча и да бъда с моите приятели.

Е – 12 години след като свърши последния ми учебен ден призовавам всеки, който сега чете този пост и е още ученик да се наслади на тези моменти.
Ако ви е тежко, тъпо, трудно, лесно – това е нормално. Ако се влюбени, объркани, математиката ви е трудна – и това е нормално.

Едно от малкото сигурни неща, които научих последните 20-тина съзнателни години от моя живот бяха, че човек трябва да бъде себе си – дали ще е малко странен или ще се кефи на математиката или програмирането от мъничък, дали ще реве на Moulin Rouge или ще слуша System of a Down – няма значение. Всеки оставя отпечатък в този голям и шарен свят и нека този отпечатък не е като направен от калъп.

 

Честит петнадесети Септември уважаеми учители и ученици. Бъдете позитивни и готови за жертви и компромиси за другата страна, бъдете критични и питайте, бъдете любопитни и се усмихвайте по-често.

Ваш,

Недко.

 

П.С. И говорейки за учители явно не са ме научили добре да слагам запетайките, но се надявам да ми простите.

Честит празник на програмиста

Честит празник на всички програмисти.
Деня на програмиста е официален празник в Русия от 2009 г. насам и се празнува на 256 ден от годината (на 12.09 при високосните или 13.09 при невисокосните години).

Избора на числото 256 също не е случаен. В рамките на един байт най-голямото десетично число, което можем да запишем в двоичен формат е 255 = 1×27 + 1×26 + 1×25 + 1×24 + 1×23 + 1×22 + 1×21 + 1×20 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 28 – 1

 

Ако броим нулата (а ако сме (не само) JS devs винаги я броим) възможните числа, които могат да се запишат са 256.
Та – честит ви професионален празник, хора. Бъдете с остри умове, меки нрави (но не много меки), усмихнати и наслаждаващи се на това, което правите.

Огромна дупка в сигурността на Bluetooth протокола

Както каза Владо – щом уясвимостта си има лого и име нещата са лоши :D

Long story short – при включен bluetooth човек може да придобие известен контрол над устройствата ви. Проблема е в начина на автентикация (каква е българската дума за authentication?) и по-точно начина по който публичния и частния ключ биват разменяни между двата клиента (encryption keys).

Има си и PoC (Proof of Concept) за Андроид, Windows и Linux.

Примера с Android е много кофти, защото хакера придобива пълен достъп и в демото прави снимка на себе си без изобщо да докосва телефона (тук не е ясно дали телефона е с парола и/или криптиран).

 

PoC с Linux е как хакват smartwatch и успешно пускат микрофона, а после рестартират часовника.


При Windows нещата са също интересни. Там атакуващия прави MiTM (Man in the middle) атака, което ще рече, че се позиционира между клиента и ресурса, който иска да достъпи (в случая сайт). Така например мога да взема HTML кода на банката в която е електронното ви банкиране и да правя $_POST към мой сървър в който ще получа потребителско име и парола.

 

А защо iOS не е засегнат?

Единственото нещо, което пречи тази уязвимост да бъде използвана срещу iOS устройства е, че те не позволяват т.нар. silent authentication, което от своя страна значи, че потребителя първо ще бъде попитан за съгласие дали иска някой да се свърже с него преди да изпълни злонамерения си код.

 

Бен Сери (Ben Seri) и Грегъри Вишнеполски (Gregory Vishnepolsky) са разписали много подробен в whitepaper по въпроса.

 

CVE-тата (common vulnerabilities and Exposures) са както следва:

  1. Linux kernel RCE vulnerability – CVE-2017-1000251
  2. Linux Bluetooth stack (BlueZ) information Leak vulnerability – CVE-2017-1000250
  3. Android information Leak vulnerability – CVE-2017-0785
  4. Android RCE vulnerability #1 – CVE-2017-0781
  5. Android RCE vulnerability #2 – CVE-2017-0782
  6. The Bluetooth Pineapple in Android – Logical Flaw CVE-2017-0783
  7. The Bluetooth Pineapple in Windows – Logical Flaw CVE-2017-8628
  8. Apple Low Energy Audio Protocol RCE vulnerability – CVE-2017-14315

 

Как да се защитите?
Най-лесния начин преди да излязат security fixes е да си спрете блутута. А и никога не трябва да си го ставяте пуснат ако не го използвате.

 

 

Ще бъда лектор на Zara Code Week 2.0, част от инициативата Europe Code Week

Минаха цели две години от предния Code Week на който бях поканен от Венко Добрев, който е един от хората зад единствената положителна медия в България – Успелите.бг. Датата е 21 и 22 Ноември в гр. Стара Загора и ще е част от Europe Code Week 2017, а линк към събитието можете да намерите тук.

Темата ми този път ще бъда “Why QA?”, а слайдовете (и запис, ако има) ще кача тук като минат.

Ако някой има интерес и му се пътува към Стара Загора ще имаме едно или две свободни места така, че пишете тук за да се организираме.

И още нещо, последно обещавам. Ако ви е интересно да чуете или научите нещо по темата пишете тук и ако е удачно ще го включа в лекцията.

09.10.2017 – Аз съм идиот

Винаги съм искал да бъда системен администратор. Исках да бъда това много преди да разбера, че има професия, която се казва Quality Assurance.
И винаги съм си врял носа там където не ми е работа. И си навлякох гнева на старите и новите богове като реших да напусна услугите на SuperHosting и да се преместя на мой си, shiny and new VPS. И после 2 месеца миграция по нощите (защото в работно време не отива да се занимавам с такива неща, най-малкото, че дори и да нямам кой знае колко много работа ще си изям чашата докато конфигурирам нещо като хората) докато всички сървиси, които искам да подкарам всичко + един античен PHP 5.2 заради стар проект, който държа повече от носталгия отколкото от други съображения.

И понеже на WordCamp Varna 2017 имах възможността да чуя лекцията на Верослав Ценов за кеширането и реших за педесети път да направя nedko.info  и marvin като цяло свръх-мега производителни и да се отварят на посетителите още преди да са натиснали Enter. Обикновено тези ми начинания завършват с undo на всичките ми промени в 3:15 вечерта.

Та и днес не беше изключение. Реших да сложа един Varnish reverse proxy за да кеширам част от ресурсите, които се връщат на клиента и фейлнах наистина грандиозно този път. Успях да засера nginx config-а на блога и ми отне сигурно 5-10 минути да върна всичките 15 милиона промени, които бях правил на него.

И нещо, което Васил Колев винаги е твърдял – “Админ се раждаш, не ставаш”. Надявам се поне за QA да ставам.

 

Иначе ако на някой му е интересно – статията за Varnish с nginx + поддъжка на SSL (обърнете внимание, че в немалко статии този случай не е разискан) можете да намерите в Linode документацията.

И още нещо, защото аз като сложа край на нещо, което пиша последват поне по две-три неща отдолу – колкото и грандиозно да осирате нещо, колкото и мощно да преебете нещо елементарно, колкото и идиоти да се чувствате – продължавайте докато не го направите. Аз така или иначе ще подкарам varnish – достатъчно съм идиот за да го накарам да ми се огъне в ръчичките. Така направете и вие. Но ако искате да мрънкате – мрънкайте, най-много някой да ви наругае.