ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Безопасность
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Безопастный Php
  #1  
Старый 26.01.2008, 11:36
Аватар для truelamer
truelamer
Участник форума
Регистрация: 06.11.2007
Сообщений: 143
Провел на форуме:
350782

Репутация: 81
По умолчанию Безопастный Php

Скажите пожалуйста как правильно писать с точки зрения безопастности когда принимаешь параматры из пост или гет и обьясните почему:
так...

if(IsSet($_POST[id]))
{
$id=$_POST[id];
if($id)
{
//cod
}
else
{
//cod
}
}

или так

if($POST[id]==1)
{
//code
}
else
{
//code
}
 
Ответить с цитированием

  #2  
Старый 26.01.2008, 12:01
Аватар для MaDfUn
MaDfUn
Познающий
Регистрация: 02.02.2007
Сообщений: 78
Провел на форуме:
1514596

Репутация: 49
По умолчанию

помоему в данной ситуации оба примера одинковые, развечто 2 попроще.
 
Ответить с цитированием

  #3  
Старый 26.01.2008, 12:07
Аватар для Piflit
Piflit
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме:
5128756

Репутация: 2032


Отправить сообщение для Piflit с помощью ICQ
По умолчанию

смотря что ты потом будешь делать с этим параметром
 
Ответить с цитированием

  #4  
Старый 26.01.2008, 12:14
Аватар для gibson
gibson
Moderator - Level 7
Регистрация: 24.02.2006
Сообщений: 447
Провел на форуме:
2872049

Репутация: 705
Отправить сообщение для gibson с помощью ICQ
По умолчанию

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

  #5  
Старый 26.01.2008, 17:29
Аватар для Kaimi
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Обработай полученные значения...
http://ru2.php.net/filter
 
Ответить с цитированием

  #6  
Старый 27.01.2008, 12:42
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
if($POST[id]==1)
{
Если id не передается в форму POST'ом, то будет ошибка. Поэтому надо проверять ее наличие.
 
Ответить с цитированием

  #7  
Старый 28.01.2008, 08:39
Аватар для krypt3r
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Цитата:
if(IsSet($_POST[id]))
{
$id=$_POST[id];
if($id)
{
//cod
}
else
{
//cod
}
}
Если так сделаешь и если переменная $id у тебя скармливается базе данных, то получишь классический вариант SQL-инъекции. Чтобы этого избежать, нужно
PHP код:
$id=$_POST[id]; 
заменить на
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
 
Ответить с цитированием

  #8  
Старый 28.01.2008, 10:38
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

krypt3r, это нужно использовать толькоко при добавлении в базу. И то не всегда, т.к. практически любой класс работы с БД имеет свои механизмы для сабжа.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Local include && PHP baz1k Чужие Статьи 0 10.01.2008 04:50
Что такое Php? PAPA212 Болталка 13 28.12.2007 20:44
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ