
26.01.2008, 11:36
|
|
Участник форума
Регистрация: 06.11.2007
Сообщений: 143
С нами:
9742875
Репутация:
81
|
|
Безопастный Php
Скажите пожалуйста как правильно писать с точки зрения безопастности когда принимаешь параматры из пост или гет и обьясните почему:
так...
if(IsSet($_POST[id]))
{
$id=$_POST[id];
if($id)
{
//cod
}
else
{
//cod
}
}
или так
if($POST[id]==1)
{
//code
}
else
{
//code
}
|
|
|

26.01.2008, 12:01
|
|
Познающий
Регистрация: 02.02.2007
Сообщений: 78
С нами:
10142246
Репутация:
49
|
|
помоему в данной ситуации оба примера одинковые, развечто 2 попроще.
|
|
|

26.01.2008, 12:07
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
С нами:
10393869
Репутация:
2032
|
|
смотря что ты потом будешь делать с этим параметром
|
|
|

26.01.2008, 12:14
|
|
Постоянный
Регистрация: 24.02.2006
Сообщений: 447
С нами:
10636106
Репутация:
705
|
|
Есть же специальная тема там нельзя было задать это вопрос?
if(IsSet($_POST['id'])) - проверяет установленна или переменная, если да то возвращяет true приводишь к определенному типу $id=$_POST['id']; - числовому, строковому и проверяешь на запрещенные символы.
if($_POST['id']==1) здесь у тебя просто сравнивает с единицей
все зависит от способа фильтрации гет/постов, а не от способа их получения.
Литературу ничего не рекомендую, т.к. видимо ты хрен что поймешь, а перепечатывать их каждый раз влом, задавай вопросы что не понятно.
|
|
|

26.01.2008, 17:29
|
|
Познавший АНТИЧАТ
Регистрация: 23.08.2007
Сообщений: 1,237
С нами:
9851426
Репутация:
1676
|
|
Обработай полученные значения...
http://ru2.php.net/filter
|
|
|

27.01.2008, 12:42
|
|
Флудер
Регистрация: 12.08.2004
Сообщений: 3,791
С нами:
11444066
Репутация:
2290
|
|
Если id не передается в форму POST'ом, то будет ошибка. Поэтому надо проверять ее наличие.
|
|
|

28.01.2008, 08:39
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
С нами:
10021597
Репутация:
905
|
|
if(IsSet($_POST[id]))
{
$id=$_POST[id];
if($id)
{
//cod
}
else
{
//cod
}
}
Если так сделаешь и если переменная $id у тебя скармливается базе данных, то получишь классический вариант SQL-инъекции. Чтобы этого избежать, нужно
заменить на
PHP код:
$id=mysql_real_escape_string($_POST['id']);
если база на мускуле. Если PostgreSQL, то вместо mysql_real_escape_string юзай pg_escape_string (ну или addslashes). Если же данные, переданные пользователем скрипту, не передаются в БД, а выводятся на страницу, то можешь получить XSS на странице. Фильтруй так
PHP код:
$id=htmlspecialchars($_POST['id']);
Вообще по защите php-скриптов на форуме достаточно тем, use search
|
|
|

28.01.2008, 10:38
|
|
Флудер
Регистрация: 12.08.2004
Сообщений: 3,791
С нами:
11444066
Репутация:
2290
|
|
krypt3r, это нужно использовать толькоко при добавлении в базу. И то не всегда, т.к. практически любой класс работы с БД имеет свои механизмы для сабжа.
|
|
|
|
 |
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Books PHP
|
FRAGNATIC |
PHP |
186 |
21.02.2010 02:41 |
|
Что такое Php?
|
PAPA212 |
Болталка |
13 |
28.12.2007 20:44 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|