Скажите пожалуйста как правильно писать с точки зрения безопастности когда принимаешь параматры из пост или гет и обьясните почему: так... if(IsSet($_POST[id])) { $id=$_POST[id]; if($id) { //cod } else { //cod } } или так if($POST[id]==1) { //code } else { //code }
Есть же специальная тема там нельзя было задать это вопрос? if(IsSet($_POST['id'])) - проверяет установленна или переменная, если да то возвращяет true приводишь к определенному типу $id=$_POST['id']; - числовому, строковому и проверяешь на запрещенные символы. if($_POST['id']==1) здесь у тебя просто сравнивает с единицей все зависит от способа фильтрации гет/постов, а не от способа их получения. Литературу ничего не рекомендую, т.к. видимо ты хрен что поймешь, а перепечатывать их каждый раз влом, задавай вопросы что не понятно.
Если так сделаешь и если переменная $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
krypt3r, это нужно использовать толькоко при добавлении в базу. И то не всегда, т.к. практически любой класс работы с БД имеет свои механизмы для сабжа.