|
|
|
| Подскажите пожалуйста какие есть способы | |
|
|
|
|
|
|
|
для: torxxx
(06.10.2011 в 13:38)
| | Есть два вида SQL-инъекций - один эксплуатирует вставку чисел, добавляя последовательность вида "0 OR 1 = 1", другой - вставку строк, добавляя лишние кавычки. С первым видом SQL-инъекций борятся при помощи явного приведения к числам, например
<?php
$_POST['id'] = intval($_POST['id']);
?>
|
Со вторым типом атаки борятся при помощи экранирования кавычек, например, при помощи функции mysql_escape_string(). Тут правда, есть тонкость, если включен режим "магических кавычек" сервер будет осуществлять экрнирование автоматически, поэтому при помощи mysql_escape_string() можно надобавлять лишних слешей в текст. Поэтому функцию mysql_escape_string(), как правило, используют совместно с get_magic_quotes_gpc().
<?php
if (!get_magic_quotes_gpc())
{
$_POST['text'] = mysql_escape_string($_POST['text']);
}
?>
| У последнего метода имеются вариации, можно наоборот удалять экранирование магических кавычек при помощи stripslash(), а потом экранировать все данные при помощи get_magic_quotes_gpc(). | |
|
|
|
|
|
|
|
для: cheops
(06.10.2011 в 13:48)
| | спасибо | |
|
|
|
|
|
|
|
для: cheops
(06.10.2011 в 13:48)
| |
<input name='title' type='hidden' value='$переменная1' />
<input name='submit' type='submit' value='отправить' ' />
|
А как защитить эти данные: интересует $переменная1 - внутри ее текст (необходим для обработки) | |
|
|
|
|
|
|
|
для: torxxx
(06.10.2011 в 18:57)
| | Имеется в виду при выводе вводимых пользователем переменных (защита от XSS-инъекции)? Здесь лучше всего воспользоваться функцией htmlspecialchars()
<input name='title' type='hidden' value='<?php echo htmlspecialchars($переменная1); ?>' />
<input name='submit' type='submit' value='отправить' />
|
| |
|
|
|
|
|
|
|
для: cheops
(06.10.2011 в 19:00)
| | да пользователем (сделал спасибо еще раз) | |
|
|
|