Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> sql инъекции, подскажите кто как борется ?  
V
    Опции темы
trigger
Дата 12.2.2008, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



..

Это сообщение отредактировал(а) trigger - 12.2.2008, 13:55
PM MAIL WWW ICQ   Вверх
BlackLFL
Дата 20.3.2008, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 15.9.2005
Где: Москва

Репутация: 3
Всего: 12



Как уже упоминал ginnie, применение placeholders, действительно является самым эффективным способом, особенно для базы данных Oracle ( увеличение производительности )
PM WWW   Вверх
gcc
Дата 28.9.2010, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 2
Всего: 17



подскажите, пожалуйста, есть большая очень нагрузка на index.pl и именно очень сильно на CPU
но на MySQL - "0" нагрузки
все работает в CGI


для того чтобы MySQL экранировала используя параметрические запросы, нужно включить mysql_server_prepare=1 ?

Код

$dbh = DBI->connect( "DBI:mysql:database=test;host=localhost;mysql_server_prepare=1", "", "", { RaiseError => 1, AutoCommit => 1 } );


ВОПРОС:
... без этого сам perl тратит много ресурсов на экранирование??


http://search.cpan.org/~capttofu/DBD-mysql...ib/DBD/mysql.pm
Цитата

Prepared statement support (server side prepare)

As of 3.0002_1, server side prepare statements were on by default (if your server was >= 4.1.3). As of 3.0009, they were off by default again due to issues with the prepared statement API (all other mysql connectors are set this way until C API issues are resolved). The requirement to use prepared statements still remains that you have a server >= 4.1.3

To use server side prepared statements, all you need to do is set the variable mysql_server_prepare in the connect:

$dbh = DBI->connect( "DBI:mysql:database=test;host=localhost;mysql_server_prepare=1", "", "", { RaiseError => 1, AutoCommit => 1 } );

* Note: delimiter for this param is ';'

There are many benefits to using server side prepare statements, mostly if you are performing many inserts because of that fact that a single statement is prepared to accept multiple insert values.

To make sure that the 'make test' step tests whether server prepare works, you just need to export the env variable MYSQL_SERVER_PREPARE:

export MYSQL_SERVER_PREPARE=1


Добавлено @ 23:57
кстате, а что вот это такое имеется ввиду??

Цитата

* Note: delimiter for this param is ';'


... что этот знак ';' не экранируется?

и что тут
Код

  $db->Exec("UPDATE Files SET file_fld_id=? WHERE usr_id=? AND file_id IN 
      (".join(',',@{$f->{file_id}}).")",$fld_id,$ses->getUserId);

будет инъекция? в IN ?
http://forum.vingrad.ru/forum/topic-309184.html

или нет?


Это сообщение отредактировал(а) gcc - 29.9.2010, 00:10
PM WWW ICQ Skype GTalk Jabber   Вверх
steyraug
Дата 27.10.2010, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 22.8.2010

Репутация: нет
Всего: нет



А что народ скажет насчет применения функции int() к переданному GET-параметру?

Это сообщение отредактировал(а) steyraug - 27.10.2010, 22:43
PM MAIL   Вверх
ming
Дата 28.10.2010, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 30.1.2009
Где: Новосибирск

Репутация: нет
Всего: 3



а что тут скажешь? для целочисленных данных может и сгодится, а для строковых int бессилен
PM MAIL ICQ Jabber   Вверх
steyraug
Дата 1.11.2010, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 22.8.2010

Репутация: нет
Всего: нет



Ну это и ежу понятно, что для строковых параметров [b]int[] нах не нужен.
PM MAIL   Вверх
gcc
Дата 1.11.2010, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 2
Всего: 17



можно как тут:
http://forum.vingrad.ru/index.php?showtopi...t&p=2209139

Код

$_ =~ /^\d+$/ 


Код

$_ ^ $_


Это сообщение отредактировал(а) gcc - 1.11.2010, 23:35
PM WWW ICQ Skype GTalk Jabber   Вверх
noneg
Дата 21.1.2011, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



"Безопасное программирование на языке perl (Крис Касперски)"
книжка небольшая...интересно будем всем наверно почитать..
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0741 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.