Използвайте променливи на сесията И не от бисквитки
Една грешка, която правят много разработчици, е използването бисквитки, малки текстови файлове, които да съхраняват информация за нашите задачи в интернет, достъп и т.н.
Са бисквитки може лесно да се чете от всеки браузър, например в Firefox с firebug или в Chrome с десния бутон след това отиваме в менюто Инспектирай елемента.
На изображението можем да видим пример за това как програмистът е създал бисквитка за влизане на потребител и излага публично данните за достъп.
Следното изображение е друг по -лош пример, че Google индексира достъпите с потребители и пароли.
Правилното нещо, което трябва да направите, е да използвате сесии, където данните са кодирани.
Ето как би изглеждала кодираната променлива на сесията, много по -сигурна, тъй като е трудна за четене:
phpsessid= sb85p15841p6l1dfg7oo8hlsc85;
След това на всеки екран проверяваме сесията на всяка отворена страница, приемаме, че тя ще бъде ограничена зона.[размер = 4] [/ размер]
Сесиите не са цялостно решение, както е друг метод за хакерство Отвличане на сесия или Подмяна на сесия. Това се случва, ако нападателят прочете стойността на сесията, докато е влязъл в профила си, и след това се опита да получи достъп до нея от друг компютър.
За да избегнем това, можем да създадем сесии, които запазват данните на оборудването, където потребителят е влязъл.
С предишния код установяваме сесия, която запазва IP адреса и браузъра, откъдето е осъществен достъп до мрежата, след което проверяваме дали докато сесията е активна, някой се опитва да влезе от друг IP или друг браузър няма да има достъп до мрежа
[размер = 4] [/ размер]
Нещо подобно прави Facebook, ако осъществявате достъп от друго устройство или от друг IP адрес в друг град, тъй като той записва от кое място имате често достъп.
Тестови случаи на XSS и SQL инжектиране
Един от начините да намерите уязвими уебсайтове е да поставите в търсачката info_page.php = или catalogo.php =
Увеличете
Това ще ни даде списък с уязвими уебсайтове, всеки уебсайт, който завършва с .php? Променлива = може да бъде уязвим.За да проверим дали е уязвим, пишем url без стойност в примерната променлива:
mydomain.com/info_page.php?id=
Ако мрежата е уязвима, тя ще отговори с грешка в mysql, която ще каже следното:Имате грешка в синтаксиса на SQL; проверете ръководството, което съответства на версията на вашия MySQL сървър, за правилния синтаксис, който да използвате близо до „“ на ред 1
Ако открием домейн с тази уязвимост, можем да тестваме, ако намерим таблицата с потребители или администратори и колко колони има:
www.mydomain / info_page.php? id = -1 + съюз + всички + изберете + 1,2,3, group_concat (потребителско_име, 0x3a,
потребител_парола), 5+ от + администратори
В този случай той ще върне паролата и потребителя на администратор, за да избегнете инжектирането на SQL, трябва да използвате сесия, а не параметри чрез url, в случай че ги използвате, изчистете параметрите с някаква функция или клас, който проверява, че няма команди sql, или javascript в параметъра, който се изпраща чрез формуляр или чрез url.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка