|
|
|
|
|
для: tokmak
(17.12.2008 в 23:41)
| | >... Но согласитесь, лучше уж, хоть какая-та защита, чем вообще никакой. ;)
А я не соглашусь с самим принципом.
Защита дарит надежду.
А негодная защита имеет следствием атаку тогда и там, где её совсем не ждешь. | |
|
|
|
|
|
|
|
для: BinLaden
(18.12.2008 в 00:11)
| | Теперь вот сижу ищу инфу по preg_match... чтобы более подробней с ней разобраться.... | |
|
|
|
|
|
|
|
для: tokmak
(18.12.2008 в 00:04)
| | Вообще говоря, нужно поставить ! перед preg_match() теперь | |
|
|
|
|
|
|
|
для: BinLaden
(17.12.2008 в 23:58)
| | /^[0-9]+$/
?id=111d если ввести такое значение, то preg_match думает, что это все цифры :D
именно при таком значении id, а остальные работают норм.
Спасибо! Пригодится!
Блин, вот что значит пишут в статьях по безопастности кода! | |
|
|
|
|
|
|
|
для: tokmak
(17.12.2008 в 23:57)
| | /^[0-9]+$/ или /^\d+$/ | |
|
|
|
|
|
|
|
для: BinLaden
(17.12.2008 в 23:46)
| | опа... прошу поправьте меня насчет preg_match. Как необходимо правильно проверить?
Сорри за оффтоп... | |
|
|
|
|
|
|
|
для: tokmak
(17.12.2008 в 23:41)
| | > Но согласитесь
Не соглашусь. Ваш код неверен и условие !is_int($_GET['id']) будет выполняться всегда. Для проверки того, что $_GET['id'] - набор цифр существует, например, ctype_digit().
> "/[0-9]/i"
Вы проверяете наличие хотя бы одной цифры. | |
|
|
|
|
|
|
|
для: tokmak
(17.12.2008 в 23:41)
| | >Ну можно и вот так (это для автора):
А не проще воспользоваться intval().
P.S. Да кстати, в вашем РВ зачем модификатор i ? :) | |
|
|
|
|
|
|
|
для: BinLaden
(17.12.2008 в 22:41)
| | насчет комментария , перепутал извеняюсь /*
>> if (!is_int($_GET['id']) {
>Нельзя так проверять, так как $_GET['id'] никогда просто так не будет integer. Это может быть NULL, string или array.
BinLaden, Но согласитесь, лучше уж, хоть какая-та защита, чем вообще никакой. ;)
Ну можно и вот так (это для автора):
if (!preg_match("/[0-9]/i",$_GET['id'])) {
echo "ID параметр указан неверно!";
exit();
}
|
| |
|
|
|
|
|
|
|
для: tokmak
(17.12.2008 в 22:32)
| | > "SELECT * FROM `article` WHERE `id_art` = 10//"
> и тут уже будет коментарий!
Однострочные комментарии в SQL -- "--"
> if (!is_int($_GET['id']) {
Нельзя так проверять, так как $_GET['id'] никогда просто так не будет integer. Это может быть NULL, string или array. | |
|
|
|
|