C, PHP, VB, .NET

Дневникът на Филип Петров


Архив за декември, 2008

* Монетният двор на Англия

Публикувано на 31 декември 2008 в раздел Математика.

В монетният двор на Англия решили, че наличните разновидности златни монети не са оптимални. Хората най-често пазарували дребни неща за суми от 1 до 20 лири. В моментното състояние (златни монети от 1, 2, 5 и 10 лири) за плащане от 18 лири е нужно да дадат една монета от 10, една от пет, една от 2 и една от 1 лира, т.е. общо 4 монети! Джобовете на хората често се късали и за това е било нужно спешно решение. Прочети още…

.

 


* Опасният преход

Публикувано на 31 декември 2008 в раздел Математика.

В тази задача се намираме в двуизмерно пространство (например лист хартия). Двама приятели били отвлечени от терористи и поставени от двете страни на една планина, например тази: Прочети още…

.

 


* 0,9999(9) = 1

Публикувано на 31 декември 2008 в раздел Математика.

Вярно ли е, че реалното число 0,9999999… е абсолютно равно на реалното число 1?

Повечето хора инстинктивно казват, че числата са „почти равни“ или че „първото клони към второто“. Истината обаче е, че те са абсолютно равни.

Как се доказва? Интересното е, че има много различни начини. Аз ще ви кажа най-достъпните. Прочети още…

.

 


* Задачата за трите ключа

Публикувано на 31 декември 2008 в раздел Математика.

Представете си, че сте в една къща, на която осветлението на първият етаж се контролира от мазето. Когато сте слезнали в мазето сте намерили три ключа за лампи. Само един от тези ключове ще светне крушката на първият етаж. За съжаление вие няма как да видите дали лампата е светната или не от мястото, където се намират ключовете. Прочети още…

.

 


* Защита от online brute force атаки

Публикувано на 16 декември 2008 в раздел ОСУП.

„Brute Force“ е атака, при който атакуващият изпраща множество заявки към сървъра с различни двойки от име и парола, с цел да „налучка“ някоя правилна комбинация. Най-често на атака са изложени потребителски имена като „admin“, „administrator“, „root“, и т.н. По този начин атакуващият се опитва да получи достъп до даден защитен ресурс, без да използва пробив в сигурността.

Първото и основно правило за защита срещу brute force атаки е да използваме колкото се може по-сложни пароли. Обикновено тези атаки изпробват набор от речникови думи, имена и понякога цифри. Освен това, независимо колко сложна е вашата парола, не е добра идея да я използвате за всички сайтове, на които влизате (най-малкото администратора на чуждият уеб сайт ще може да проникне във вашия личен).

Независимо колко стриктна и добра политика използваме за паролите ние не бихме искали да позволим някой да изпробва стотици комбинации от имена и пароли върху вашата система. Най-малкото не сме сигурни дали някой от нашите потребители не използва лесна за разгадаване парола – например името си в комбинация с годината на раждане: „Иван1978“. Една целенасочена атака срещу този потребител би изпробвала различни комбинации от данни, които са свързани с потребителя Иван. Паролата от своя страна изглежда сигурна (съдържа и думи и цифри) и би преминала вашия валидатор. Поради тази причина е наложително да се защитите, като едновременно с това не затруднявате потребителя излишно. Прочети още…

.

 


* Captcha

Публикувано на 07 декември 2008 в раздел ОСУП.

Captcha е името на широко използвана техника за защита на форми. Тя е съкращение от „Completely Automated Public Turing test to tell Computers and Humans Apart“, което преведено означава “напълно автоматизирана проверка за разграничаване на човек от компютър”. Процеса на проверка изисква един компютър (сървър) да поиска отговора на прост въпрос, но по начин, който предотвратява възможноста за автоматизирано намиране на отговора от компютър. По този начин всеки потребител въвел правилен отговор бива упълномощен с права за достъп и ние сме сигурни, че той е човек, а не машина (bot). Тази техника премахва следните проблеми в сигурноста на системата: Прочети още…

.

 


* Code Injection – вмъкване на нежелан код

Публикувано на 07 декември 2008 в раздел ОСУП.

Вече разгледахме статии, в които описахме проблемите за вмъкване на нежелан SQL код и XSS атаки. Те всъщност са част от една по-широка общност, която можем да наречем общо „вмъкване на нежелан код“. SQL injection целеше да повреди базата данни, а XSS атаките целяха да подведат потребител на системата. Логично остава още едно звено за атака – файловата система на сървъра. Знаете, че скриптовете, писани на езици като PHP, ASP, JSP, и др, се компилират и изпълняват на сървъра. Това дали означава, че тяхния сорс код е предпазен от модифициране?

Нека разгледаме няколко примера: Прочети още…

.

 


* Не вярвайте на Environment Variables

Публикувано на 07 декември 2008 в раздел ОСУП.

На няколко пъти споменахме, че Environment Variables не трябва да бъдат използвани като достоверен източник на информация. Време е да добавим още нещо – използването им може да доведе и до пробиви в сигурността. Една статия от seancoates.com заслужава значително внимание.

Трябва да отбележим, че описаното в статията е изключително честа практика при програмирането на PHP, а именно – когато правите заявка от един скрипт към самия него, то програмистите използват за улеснение $_SERVER[‘PHP_SELF’]. Тази environment променлива записва текущия локален път към скрипта. Следните форми могат да бъдат видяни в изключително много PHP приложения: Прочети още…

.

 


* Forced Browsing – лош контрол над привилегии

Публикувано на 06 декември 2008 в раздел ОСУП.

„Forced Browsing“ или още „Forceful Browsing“ е атака, която цели достъпване на ресурси, които би трябвало да бъдат защитени. Почти винаги причина за такава атака е лош дизайн на правата на достъп за приложението. Принципът за защита е само един – ако например искаме да автентикираме един потребител и да проверим дали е администратор или не, то ние НЕ трябва да разчитаме на информация подадена от него. Винаги извършвайте проверките на страната на сървъра. Следното видео демонстрира с пример ефекта от лошо управление на правата на достъп: Прочети още…

.

 


* XSRF – изпълнение на нежелани заявки

Публикувано на 06 декември 2008 в раздел ОСУП.

Cross Site Request Forgery (XSRF) е уязвимост, с която караме човек да извърши действие в даден сайт без той да желае да извърши това действие. В браузърите действа т.нар. „same origin policy“, който гарантира, че в рамките на една сесия на браузъра скрипт от един домейн не може да прочете информация от друг домейн, но то не спира изпращането на информация (GET и POST заявки) от един домейн на друг. Именно това се използва като основа за XSRF атаката. Например XSRF може да се използва в комбинация с XSS, за да бъде накаран потребител с по-високи права да изпълни действие, което не е трябвало да бъде изпълнено, да бъде откраднато сесийно cookie, т.н. Прочети още…

.