Комментарии 29
для защиты от SQL-инъекции надёжней и удобней использовать
parameterized statements/placeholders/bind variables
пример:
$sql = prepare_sql("SELECT user_id FROM users WHERE user_login = %s AND user_pass = %s", $user_login, $user_pass);
а в prepare_sql уже mysql_real_escape_string, intval и кавычки
parameterized statements/placeholders/bind variables
пример:
$sql = prepare_sql("SELECT user_id FROM users WHERE user_login = %s AND user_pass = %s", $user_login, $user_pass);
а в prepare_sql уже mysql_real_escape_string, intval и кавычки
+1
а PDO уже отменили?
0
для защиты от sql инъекций юзай библиотеку mqsqli и будет тебе счастье
0
... мое мнение:
клас для таблиц, где прописано типы переменных (полей). при вставке и выборке фильтровать в нужные форматы... может когда-то напишу статю..
клас для таблиц, где прописано типы переменных (полей). при вставке и выборке фильтровать в нужные форматы... может когда-то напишу статю..
0
вместо switch использовать in_array и/или isset
пример:
$includes = array('hello.php', 'bye.php');
if (isset($includes[$_GET['file']]))
include $includes[$_GET['file']];
пример:
$includes = array('hello.php', 'bye.php');
if (isset($includes[$_GET['file']]))
include $includes[$_GET['file']];
0
Вообще мне кажется надо делать всё на процедурах, хотя я хз как в мускуле с этим делом всё обстоит, но под MS SQL Server реализуется.
ИМХО - Процедуры пожалуй самый лучший метод против SQL Injection.
ИМХО - Процедуры пожалуй самый лучший метод против SQL Injection.
-3
Да в инете полно по этому поводу инфы, т.е сравнение что лучше тупо запросы либо выполнение через процедуры есть свои за и против. Простейший пример:
http://www.aspnetmania.com/Forums/ForumMessage/278187.html
А так посерфи инет там обезательно найдёш
http://www.aspnetmania.com/Forums/ForumMessage/278187.html
А так посерфи инет там обезательно найдёш
0
Процедуры - это разнесение логики между PHP и СУБД, что нежелательно, т.к. повышает связность компонент проекта.
-1
по данной ссылке нет ни примера sql-инъекции, ни аргументации в пользу использования хранимых процедур, никаких "за и против".
Ссылка к данному топику не имеет никакого отношения
Ссылка к данному топику не имеет никакого отношения
0
А "'" недостаточно????Там спрашивали как можно защитится от sql-injection. И если внимательно читали и хотя бы представляете что такое процедуры и с чем их едят, то думаю Вы поймёте о чём там речь.
0
опять же, смотря как в коде вызывается эта процедура. Если sqlstr = "CALL MyProcName tra-ta-ta, bla-bla-bla", то это не метод. Тут ессно лучше использовать препаредстейтмент вместе с процедурой. Хотя в случае MySQl использование хранимки на безопасности почти никак не сказывается (рабоаю с аспнет и родным провайдером MySqlData.dll).
0
Поясню автору, почему (скорее всего) минусуют тему. Дело в том, что все это уже все давно знают. Не знать про инъекции могут только чайники. Кроме того, это уже сто миллионов раз обсуждалось повсюду. Лучше конечно пользоваться поиском до публикации поста. Потому народ не считает тему полезной и минусует.
+1
>Потому что злоумышленник может передать в переменную file "http://ya.ru/%00"(без ковычек) что отбросит расширение .php
Уязвимость с нулевым символом для PHP уже в прошлом.
Уязвимость с нулевым символом для PHP уже в прошлом.
0
Пишите в index.php:
Плохой дядя раз сто вызывает
addslashes нас спасет?
include(addslashes($_GET['file']).".php");
Плохой дядя раз сто вызывает
index.php?file=index
.addslashes нас спасет?
0
Для базового набора я бы добавил про Session Fixation и CSRF.
0
Объясните пожалуйста, а зачем Вы написали эту статью? Без иронии и сарказма, просто интересно.
0
Хотелось бы видеть побольше таких статей на сайте. Спасибо автору.
0
... есть такая прекрасная книга: М. Фленов - "РНР глазами хакера". как то дал друг на досуге почитать. основы очень хорошо приведены...
так же рекомендую (сам купил уже себе через е-магазин) М. Кузнецов, И. Симдянов "Головоломки на РНР для хакера". нужно сначала уметь взломать чтоб потом защитить... для етой цели есть даже спец. ПО для обнаружения уязвимостей в сайтах...
так же рекомендую (сам купил уже себе через е-магазин) М. Кузнецов, И. Симдянов "Головоломки на РНР для хакера". нужно сначала уметь взломать чтоб потом защитить... для етой цели есть даже спец. ПО для обнаружения уязвимостей в сайтах...
+1
В общем, советы по защиет одни и те же, только теперь вам стоит немного потратиться на человека, который за деньги проверит ваш сайт на наличие уязвимостей и сообщит вам результаты.
Хочу предложить Вам в помощь сайт hackmysite.ru для проверки защиты вашего ресурса — по сути фриланс биржа для людей обладающих умением взлома. От вас требуется разместить проект, указать тип уязвимости и бюджет. Дальше просто — ждать предложения выполнить проект от экспертов взлома. Проект молодой и ждёт своих клиентов!
Хочу предложить Вам в помощь сайт hackmysite.ru для проверки защиты вашего ресурса — по сути фриланс биржа для людей обладающих умением взлома. От вас требуется разместить проект, указать тип уязвимости и бюджет. Дальше просто — ждать предложения выполнить проект от экспертов взлома. Проект молодой и ждёт своих клиентов!
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Безопасность в PHP (Обработка даных полученных от пользователей)