Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Сделаем универсальный скрипт защиты!!!

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-46] 

 
 автор: Unkind   (01.08.2007 в 14:03)   письмо автору
 
   для: Futurer   (01.08.2007 в 13:59)
 

Вам очень повезло с ботами.

   
 
 автор: Futurer   (01.08.2007 в 13:59)   письмо автору
 
   для: Unkind   (01.08.2007 в 13:53)
 

Вообще у меня как-то была проблема с ботами. Решилась очень просто. После загрузки страницы скриптом в форму вставляется скрытое поле с ключём случайно выбранным из 10 штук (набор из ключей известен и заранее определён). При получении данных от формы просто проверяем ключ на наличие, а потом уже сверяем на совпадение, если он есть. Таким образом без тела сайта форма не работает.

   
 
 автор: Unkind   (01.08.2007 в 13:53)   письмо автору
 
   для: Futurer   (01.08.2007 в 13:44)
 

IP думаю да, а UA вряд ли. И вообще, разве есть у бота UserAgent.
Всё как раз абсолютно наоборот. Практически все боты под User-Agent'ами известных браузеров.
Это всего лишь HTTP-заголовок.
IP фактически можно сменить, только используя прокси.

   
 
 автор: Futurer   (01.08.2007 в 13:44)   письмо автору
 
   для: neudor   (01.08.2007 в 10:07)
 

Возможно вы и правы. А если оперировать параметрами UserAgent и IP. Бот разве сможет их менять. IP думаю да, а UA вряд ли. И вообще, разве есть у бота UserAgent.

   
 
 автор: Unkind   (01.08.2007 в 13:42)   письмо автору
 
   для: Futurer   (01.08.2007 в 13:32)
 

Futurer, антифлад? Чисто сам факт того, что имена полей могут быть нестандартными, может защитить от тупых ботов, которые отправляют данные по именам полей вроде username, message и проч. Но не более.

А нормальному боту абсолютно ничего не мешает взять именая полей, как нормальному браузеру и посылать её. Тем более некоторые боты используют движки браузеров.

   
 
 автор: Futurer   (01.08.2007 в 13:32)   письмо автору
 
   для: neudor   (01.08.2007 в 10:07)
 

В продолжение темы появилась мысль. А почему бы не создавать в форме каждый раз поля с разными именами. А по пришествии переменных в скрипт php проверять их на соответствие определённому хитрому шаблону. Либо просто создавать и хранить в базе временные записи с названиями полей формы а потом сверять. Это подходит только для формы авторизации или отправки сообщений, другое думаю не стоит таких заморочек.

   
 
 автор: Unkind   (01.08.2007 в 13:24)   письмо автору
 
   для: neudor   (01.08.2007 в 10:07)
 

От sql-inj есть один просто шикарный метод защиты. Заключатся он в использовании placeholder'ов.
Да это не метод защиты, а способ получения данных.

Можете поэкспериментировать.
Интересно как? :)
В такую штуку вам ну никак не удастся впихнуть инжекшн.
Откуда мы знаем что в классе, который Вы используете? Может можно.

   
 
 автор: Trianon   (01.08.2007 в 13:23)   письмо автору
 
   для: Binura   (01.08.2007 в 11:06)
 

>кто что думает об этом?

Свое мнение по этому вопросу я выражать уже устал, ей-богу.
Последний раз в соседней ветви.
http://softtime.ru/forum/read.php?id_forum=1&id_theme=41343

   
 
 автор: Unkind   (01.08.2007 в 13:18)   письмо автору
 
   для: Binura   (01.08.2007 в 11:06)
 

$proverka = array('POST','htmlspecialchars','stripslashes','nl2br');
Что Вы хотите проверить, изменив строку?

Не надо этой ерундой маятся. На самом деле выйдет гораздо хуже и тяжелее для проверки. К тому же медленнее. А смысл, я так понимаю, легко и просто обработать переменные. А так не выйдет, следовательно лучше не продолжать.

   
 
 автор: Binura   (01.08.2007 в 11:06)   письмо автору
 
   для: neudor   (01.08.2007 в 10:07)
 

мда-а-а. серьезные вещи... =)
я еще классы совсем не знаю . . .
давайте сделаем простую функцию.
я предлогала уже, что то такое.

и так, моя идея:

на каждой страничке:
1) создаем массив переменных, которые должны прийти.
$massiv = array('name','msg');
таким образом, скрипт будет работать только с необходимыми переменными.

2) создаем массив по типу проверки.
$proverka = array('POST','htmlspecialchars','stripslashes','nl2br');
таким образом, функция выполнит эти функции. т.е. примет методом пост, заменит \ n на <br> и т.д.

3) вызываем функцию, и отправлем 2 массива.


создаем функцию:
тут уже ставим условия от проверочного массива...
т.е. какую проверку необходимо произвести...


кто что думает об этом?

   

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-46] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования