|
|
|
|
|
для: Diablo_
(09.11.2006 в 11:12)
| | А Вы чего боитесь? SQL Injection? Тогда обрабатывайте те данные, которые ДОЛЖНЫ быть целыми числами функцией intval() или так:
<?php
$id = (int) $_GET['id'];
?>
|
Если, к примеру, это число с плавающей точкой, то floatval() или
<?php
$float_var = (float) $_GET['float'];
?>
|
Во всех остальных случаях те данные, которые будут зайдествованы в MySQL-запросах следует обрабатывать так:
<?php
if(!get_magic_quotes_gpc())
{
$string = mysql_escape_string($string);
}
?>
|
она ведь уберёт все символы кроме букв и цифр?! Зачем тогда делать ещё что-то?
Вы должны точно знать, зачем Вы делаете то или иное действие с переменной. Если Вы просто понаберете функций и с их помощью будете обрабатывать бедную переменную, то Вы никогда не поймете как ломают Ваши скрипты.
P.S. А Вы "плохие символы" для какой-то цели фильтруете?
P.P.S. но intval вообще не пропускает буквы!
Так Вам её и не затем посоветовали. | |
|
|
|
|
|
|
|
для: Trianon
(09.11.2006 в 11:39)
| | но intval вообще не пропускает буквы! | |
|
|
|
|
|
|
|
для: Diablo_
(09.11.2006 в 11:38)
| | А если помимо них нужны кавычки, слэши, угловые скобки, которых Вы так боитесь?
Если нужны русские буквы, в конце концов? Можно подумать, Ваш preg_replace их пропустит. | |
|
|
|
|
|
|
|
для: Trianon
(09.11.2006 в 11:22)
| | Ну а если нужны и буквы и цифры? | |
|
|
|
|
|
|
|
для: Diablo_
(09.11.2006 в 11:12)
| | Функцией intval я отсек и буквы тоже. И даже изрядную долю цифр.
[поправлено модератором] | |
|
|
|
|
|
|
|
для: Trianon
(09.11.2006 в 10:10)
| | Скажите пожалуйста, а разве не достаточно только вот этой функции?
$text = preg_replace("/[^a-z0-9]/i", "", $_POST['textfield']);
|
она ведь уберёт все символы кроме букв и цифр?! Зачем тогда делать ещё что-то? | |
|
|
|
|
|
|
|
для: Diablo_
(09.11.2006 в 02:03)
| | Сама по себе информация никакой опасности не представляет.
Опасность представляет неадекватная обработка информации.
> "<br>" // выводит переход на следующию строку
> ""<br>"" // выводит "<br>"
Ни та ни другая конструкция не выведут ничего. Поскольку не являются операторами вывода.
Вторая строка не является даже корректным выражением.
>Там в этой статье про безопасность написано, что эти функции применяются для
"Эти" функции применяются совсем для других (более того - совершенно различных) целей.
[поправлено модератором] | |
|
|
|
|
|
|
|
для: Trianon
(09.11.2006 в 00:50)
| | 1. но id то может быть и числовий и буквенный
2. лично я так себе это представлял, елси информацию поступающию от юзера заковычить и заслешить, то она не будет представлять опасности! Это же тоже самое что попытаться вывести переход строки
"<br>" // выводит переход на следующию строку
""<br>"" // выводит "<br>"
|
или нет?
Там в этой статье про безопасность написано, что эти функции применяются для обеззараживания информации. | |
|
|
|
|
|
|
|
для: Unkind
(09.11.2006 в 00:15)
| | Это для блокировки диагностики о возможном отсутствии $_REQUEST['id'] | |
|
|
|
|
|
|
|
для: Trianon
(08.11.2006 в 23:34)
| | $id = @intval( $_REQUEST['id'] ); - а зачем "собака"? ;) Эта функция никогда ошибку не вернет... | |
|
|
|
|