|
|
|
| Добрый день.
Подcкажите пожалуйста, какими функциями надо обработать текстовые поля html форм перед тем как заносить их содержимое в базу MySql (с точки зрения безопасности)?
Спасибо. | |
|
|
|
|
|
|
|
для: pilotgarry
(15.06.2008 в 17:07)
| | >Добрый день.
>
>Подcкажите пожалуйста, какими функциями надо обработать текстовые поля html форм перед тем как заносить их содержимое в базу MySql (с точки зрения безопасности)?
>
>Спасибо.
stripslashes и htmlspecialchars
Первое полезное, но не с точки зрения безопасности, а второе для безопасности. | |
|
|
|
|
|
|
|
для: neo2008
(15.06.2008 в 21:46)
| | >stripslashes и htmlspecialchars
>Первое полезное, но не с точки зрения безопасности, а второе для безопасности.
Ерунду пороть не надо, а? | |
|
|
|
|
|
|
|
для: neo2008
(15.06.2008 в 21:46)
| | stripslashes() имеет смысл применять только если директива magic_quotes_gpc включена.
А htmlspecialchars() вообще здесь лишняя. | |
|
|
|
|
|
|
|
для: Саня
(15.06.2008 в 22:13)
| | htmlspecialchars() тоже нужно!!! например при добавлении строки: Сегодня "Спартак" выиграл всех на свете! Кавычки вокруг нужно заменить на спец.символы, т.к. при редактировании в админке например, выйдет косяк. будет что-то типа <input type="text" value="Сегодня "Спартак"">
пользователь увидет только Сегодня и при сохранении это все пропадет!!! | |
|
|
|
|
|
|
|
для: Петр
(16.06.2008 в 20:15)
| | >htmlspecialchars() тоже нужно!!!
htmlspecialchars() нужно перед выводом в браузер, но никак не перед вводом в БД. | |
|
|
|
|
|
|
|
для: pilotgarry
(15.06.2008 в 17:07)
| | mysql_escape_string() вполне достаточно. | |
|
|
|
|
|
|
|
для: Саня
(15.06.2008 в 22:09)
| | >mysql_escape_string() вполне достаточно.
Я бы только добавил, что эта функция необходима независимо от того, из поля формы пришла строка, или из какого-либо другого источника.
При ручном формировании текста запроса, конечно. | |
|
|
|
|
|
|
|
для: pilotgarry
(15.06.2008 в 17:07)
| | Если данные пришли из HTML-формы, т.е. находятся в массивах $_GET или $_POST следует обрабатывать их следующим образом. Текстовые данные
<?php
if (!get_magic_quotes_gpc())
{
$_GET['name'] = mysql_escape_string($_GET['name']);
}
?>
|
Числовые
<?php
$_GET['number'] = intval($_GET['number']);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(16.06.2008 в 10:32)
| |
<?php
// Функция рекурсивного обхода массива и прослешивания всяких кавычек;
function strips(&$el) {
if (is_array($el))
foreach($el as $k=>$v)
strips($el[$k]);
else $el = stripslashes($el); // Лучше еще заменить двойные кавычки на спец.символы;
}
// Проверка всех передаваемых массивов;
if (get_magic_quotes_gpc()) {
strips($_GET);
strips($_POST);
strips($_COOKIE);
strips($_REQUEST);
if (isset($_SERVER['PHP_AUTH_USER'])) strips($_SERVER['PHP_AUTH_USER']);
if (isset($_SERVER['PHP_AUTH_PW'])) strips($_SERVER['PHP_AUTH_PW']);
}
?>
|
| |
|
|
|
|
|
|
|
для: Петр
(16.06.2008 в 20:17)
| | Спасибо всем кто принял участие в обсужденииюю. Вы мне сильно помогли! | |
|
|
|