Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Безопасная форма

5.6K
21 февраля 2005 года
mixa_x
18 / / 13.10.2004
Hi All!

Где-то видел, может даже на этом форуме:
как сделать безопасную форму, данные которой ложаться в базу, потом скриптом достаются на страницу. Ведь можно помимо "Привет Вася" дописать и PHP-скрипт, который ессно потом выполнится...
Надеюсь понятно изложил :)
Спасибо!
301
21 февраля 2005 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by mixa_x
Hi All!

Где-то видел, может даже на этом форуме:
как сделать безопасную форму, данные которой ложаться в базу, потом скриптом достаются на страницу. Ведь можно помимо "Привет Вася" дописать и PHP-скрипт, который ессно потом выполнится...
Надеюсь понятно изложил :)
Спасибо!


Если ты видел где-то поищи сам, а не проси других. Способ прост и сложен одновременно - достаточно точно знать, что ты хочешь получить от пользователя и не пропускать все остальное. Вот.

5.6K
21 февраля 2005 года
mixa_x
18 / / 13.10.2004
Цитата:
Originally posted by lord Kelvin

Если ты видел где-то поищи сам, а не проси других. Способ прост и сложен одновременно - достаточно точно знать, что ты хочешь получить от пользователя и не пропускать все остальное. Вот.


Сам-то я уже искал. Искать кого-то - не прошу. А фишка заключалась в использовании какой-то пары html-тэгов.

1.9K
21 февраля 2005 года
zorkk
80 / / 22.07.2004
Цитата:
Originally posted by mixa_x

Сам-то я уже искал. Искать кого-то - не прошу. А фишка заключалась в использовании какой-то пары html-тэгов.



А можно подробнее узнать, что ты хочешь?! А то по таким описаниям ничего не понятно. То ли ты хочешь защититься от PHP- и SQL-инъекций, то ли просто форму создать.

5.6K
21 февраля 2005 года
mixa_x
18 / / 13.10.2004
Цитата:
Originally posted by zorkk


А можно подробнее узнать, что ты хочешь?! А то по таким описаниям ничего не понятно. То ли ты хочешь защититься от PHP- и SQL-инъекций, то ли просто форму создать.


Угу - защититься от инъекций :)
Т.е. текст, вводимый пользователем, нужно "обезопасить" от таких вот зловредных примесей...

1.9K
21 февраля 2005 года
zorkk
80 / / 22.07.2004
все очень просто: для защиты от всяких РНР и JS инъекций достаточно обработать полученные данные с формы функцией htmlspecialchars(). Чтобы исключить SQL инъекции необходимо применить функции mysql_escape_string() для MySQL или pg_escape_string() для PostgreSQL

то есть данные с формы получать будем так: (пример)

$var1=htmlspecialchars(mysql_escape_string($_POST['var1']));
//для MySQL

$var2=htmlspecialchars(pg_escape_string($_POST['var2']));
//для PostgreSQL

Почему же для разных БД функции разные?! Все дело в том, что в MySQL используется мягко говоря далеко не стандарт языка SQL и поэтому некоторые служебные символы отличаются. За подробностями как обычно на php.net
5.6K
21 февраля 2005 года
mixa_x
18 / / 13.10.2004
Цитата:
Originally posted by zorkk
все очень просто: для защиты от всяких РНР и JS инъекций достаточно обработать полученные данные с формы функцией htmlspecialchars(). Чтобы исключить SQL инъекции необходимо применить функции mysql_escape_string() для MySQL или pg_escape_string() для PostgreSQL



То, что надо! Большое спасибо!!! :)
Кстати, не подскажешь, как узнать IP пользователя, отправляющего данные с формы?

1.9K
21 февраля 2005 года
zorkk
80 / / 22.07.2004
Цитата:
Originally posted by mixa_x


То, что надо! Большое спасибо!!! :)



Кстати, если точно известен тип данных с формы (например номер страницы приразбивке форумов или гостевух на страницы) полезно применять еще функцию приведения этого значения к соотв. типу данных. Например написали гостевуху и обращение к странице номер 19 происходит так: guestbook.php?page=19

В скрипте получаем значение переменной:
$page=(int)$_GET['page'];
if($page<1) $page=1;

Таким образом, если будет попытка передать через эту переменную передать что-то отличное от положительного целого числа - скрипт будет перекидывать на первую страницу гостевухи. Это возможно применять только в том случае, когда точно известно какого именно типа данные должны прийти в переменную.

5.6K
22 февраля 2005 года
mixa_x
18 / / 13.10.2004
Цитата:
Originally posted by zorkk


Кстати, если точно известен тип данных с формы (например номер страницы приразбивке форумов или гостевух на страницы) полезно применять еще функцию приведения этого значения к соотв. типу данных. Например написали гостевуху и обращение к странице номер 19 происходит так: guestbook.php?page=19

В скрипте получаем значение переменной:
$page=(int)$_GET['page'];
if($page<1) $page=1;

Таким образом, если будет попытка передать через эту переменную передать что-то отличное от положительного целого числа - скрипт будет перекидывать на первую страницу гостевухи. Это возможно применять только в том случае, когда точно известно какого именно типа данные должны прийти в переменную.


Ясно. 10х!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог