^
Ў
о, Дискус - Форум » Интернет и Компьютер » Вебмастеринг-Сайтостроение
хорошая защита от SQL-инъекций - пример, sql injection
Артем™ ☻
26 ноября 2016 15:07
1

Многие Вебмастера наверно слышали про такой метод взлома сайтов как SQL Иньекция - и наверно не все знают про способ защтиы...

 

Вот код который нужно вставлять в главный файл обработчик сайта к примеру вначале кода index.php

 

foreach ($_GET as $k=>&$v)
    if ((
strpos($k'_SERVER') === false) && (strpos($k'_SESSION') === false))
    {
        
$v str_replace("'"""$v);
        $
$k $v;
    }

foreach (
$_POST as $k=>&$v)
    if ((
strpos($k'_SERVER') === false) && (strpos($k'_SESSION') === false))
    {
        
$v str_replace("'"""$v);
        $
$k $v;
    }

foreach (
$_COOKIE as $k=>&$v)
    if ((
strpos($k'_SERVER') === false) && (strpos($k'_SESSION') === false))
    {
        
$v str_replace("'"""$v);
        $
$k $v;
    }
unset(
$v);  

 

 

удаление опострофа можно поменять на заему на чтото другое , и также можно защитить такими методами замена запросов UNIOIN SELECT , _GROUP _BY ...

 

Вообщем почитайте и заменяйте все запросы GET и POST на своем сайте - чтобы предостеречь все формы от SQL Injection

Редис
26 ноября 2016 15:13
0

Взято это отсюда http://proksey-net.livejournal.com/942.html

 

и проверено на работоспособность !

 

Что пишет автор на эту тему ...

 

А защита от инъекций пишется в начале общего файла, типа include_all.php

 

Конструкция Unset($v) обязательна, т.к. php сохраняет ссылку на переменную и после цикла. И если мы потом напишем $v=1;, то последняя переменная, например, $_COOKIE['user'] станет равна единице.

 

Конструкция $$k=$v создает переменные, например, из $_COOKIE['user'] создаст $user.

 

Конструкция if ((strpos($k, '_SERVER') === false) && (strpos($k, '_SESSION') === false)) предотвращает подстановку ложных значений при использовании $$k=$v.

RESPECT99
26 ноября 2016 23:51
0

Ну да, согласен, не совсем правильная информация, тупо копирайт и вброс неправдивой информации. Этот код ничему не помогает в защите сайтов, не пытайтесь что то подобное пробовать ))

Артем™ ☻
27 ноября 2016 11:26
0

Цитата: RESPECT99 в ответ
Ну да, согласен, не совсем правильная информация, тупо копирайт и вброс неправдивой информации. Этот код ничему не помогает в защите сайтов, не пытайтесь что то подобное пробовать ))

 

копипаст да - код скопирован ! А с чего вы взяли что этот код неработает ? Код работает и реально меняет или удаляет все апострофы в запросе .

 

А если апострофы удалены то 99% SQL Иньекции неработают .. Тоесть код рабочий!

 





Перейти к полной версии