|
|
|
|
|
для: hxt
(10.03.2011 в 19:26)
| | Иногда для этого используются SQL-функции, т.е. пароль становится частью запроса, в этом случае его обязательно нужно проверять. | |
|
|
|
|
|
|
|
для: denser
(10.03.2011 в 18:22)
| | Пароль можно не проверять. Его обычно сначала хешируют, а потом сравнивают полученное значение с записью в таблице.
Поправьте меня, если я ошибаюсь. | |
|
|
|
|
|
|
|
для: cheops
(10.03.2011 в 18:32)
| | Теперь понятно. Спасибо за помощь. | |
|
|
|
|
|
|
|
для: denser
(10.03.2011 в 18:22)
| | Следует поступить, точно так же как с обычной строкой, т.е. подвергнув их следующей проверке
<?php
// Если режим магических кавычек отключен - экранируем спец-символы
if (!get_magic_quotes_gpc())
{
$_POST['login'] = mysql_escape_string($_POST['login']);
$_POST['pass'] = mysql_escape_string($_POST['pass']);
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(10.03.2011 в 14:58)
| | А как быть со страницей авторизации? То есть, есть запись в таблице (пароль и логин), нужно сверить вводимые данные с данными в таблице? | |
|
|
|
|
|
|
|
для: denser
(10.03.2011 в 14:47)
| | Тогда перед помещением информации в базу данных, необходимо обработать параметры для предотвращаения SQL-инъекций, а перед выводом из базы данных для предотвращения XSS-инъекций.
1) Перед помещением в базу данных. Если речь идет о целочисленных данных, достаточно прогнать их через функцию intval().
<?php
$_POST['id'] = intval($_POST['id']);
?>
|
Если речь идет о строковых данных, то необходимо экранировать спец-символы (в том, случае, если отключен режим магических кавычек).
<?php
// Если режим магических кавычек отключен - экранируем спец-символы
if (!get_magic_quotes_gpc())
{
$_POST['text'] = mysql_escape_string($_POST['text']);
}
?>
|
2) Перед выводом из базы данных. Текст, особенно если его вводит не доверенный человек, желательно прогнать через функцию htmlspecialchar().
<?php
echo htmlspecialchars(stripslashes($text, ENT_QUOTES);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(09.03.2011 в 18:33)
| | Да, о помещении их в базу данных, а также если я вывожу в браузер текст из базы данных. | |
|
|
|
|
|
|
|
для: denser
(09.03.2011 в 15:42)
| | непосредственно перед занесением в бд mysql_real_escape_string
непосредственно перед выводом в браузер htmlspecialchars
но есть нюансы. если данные от доверенного источника (например администратора), то тогда htmlspecialchars применять естественно не нужно. и т.п. в общем-то я имею ввиду как раз то, что написал Valick | |
|
|
|
|
|
|
|
для: denser
(09.03.2011 в 14:49)
| | универсальных решений нет, защищать нужно конкретное приложение с набором конкретных входных данных. | |
|
|
|
|
|
|
|
для: denser
(09.03.2011 в 15:42)
| | Обязательно поможем, но нужно больше подробностей о том, куда потом идут данные. Речь идет о помещении их в базу данных? | |
|
|
|
|