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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Защита веб-приложений на Perl, Статья 
:(
    Опции темы
djandrey
  Дата 29.10.2007, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Обновлено:
Сайт переехал, поэтому у статьи новый адрес.

Защита веб-приложений на Perl.

Как не допускать уязвимости в скриптах.
18 правил безопасности с примерами и пояснениями.

Обновлено2: И пунктов теперь 32.

Это сообщение отредактировал(а) djandrey - 21.10.2010, 14:28
PM MAIL WWW Jabber   Вверх
KSURi
Дата 29.10.2007, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А про -T даже не написали...


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
djandrey
Дата 2.11.2007, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Первая версия. Как-нибудь допишу другое. Многое ещё не сказано.
В частности планируется добавить про загрузку файлов на сервер,
про настройки сервера, .htaccess, Perl::Critic, use strict и прочее.
Да и про -T тоже, спасибо, напомнили.
PM MAIL WWW Jabber   Вверх
AndreyCH
Дата 8.12.2007, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как начинающему web-programmist, статья мне интересна. Вот только хотелось бы узнать мнение "матерых" ;-) . Вроде все логично - а если автор заблуждается? Народ, выскажите свое мнение! Пожалуйста!
PM   Вверх
Anarki
Дата 9.12.2007, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Неплохая статья.


Цитата(AndreyCH @  9.12.2007,  02:01 Найти цитируемый пост)
Как начинающему web-programmist, статья мне интересна. Вот только хотелось бы узнать мнение "матерых" ;-) . Вроде все логично - а если автор заблуждается? Народ, выскажите свое мнение! Пожалуйста!

Поверьте, он не заблуждается.

Разве что стоимость защиты не должна превышать стоимость(ценность) защищаемой информации. Это к пункту 16.



--------------------
PM WWW   Вверх
djandrey
Дата 12.3.2010, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



За прошедшее время статья сильно пополнилась, стала чуть ли не в два раза больше.

В текущей версии от 8 декабря 2008 уже 31 пункт и это ещё не всё, что хотелось написать. Есть ещё пункты, которые в TODO. Извиняюсь за выкладывание промежуточной версии с некоторой долей сырья под конец (да, прямо посреди текста можно обнаружить несколько TODO). Думаю, это по-любому лучше, чем старая версия с 18 пунктами.

Статья живёт по новому адресу:
http://dj-andrey.ru/articles/perl-web-application-security

Есть мысль по окончанию TODO сделать из этого аудиоверсию, эдакий подкаст чтоли. Но с такой немаленькой и очень програмерский статьёй не всё так просто. Например, одним куском или разрезать, а так же что делать с кодом и таблицами. Что скажете, стоит оно усилий по озвучиванию или это всё-таки вещь для чтения?
PM MAIL WWW Jabber   Вверх
ЗлыеТапки
Дата 6.4.2010, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



непонятен пример 
Код

# целое > 0
sub param_gt0($)
{
  my $p = shift;
  if ( param($p) !~ m/^\d+$/ or param($p) <= 0 )
  {
    # Реакция на несоответствие
  }
  return param $p;
}

зачем автор пишет дополнительную проверку "or param($p) <= 0" ?
Ведь знак минус уже не попадает под шаблон \d+. И без этой дополнительной проверки можно.
Имхо, автор обманывает читателя.
PM MAIL   Вверх
djandrey
Дата 11.8.2010, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



2 ЗлыеТапки: спасибо. Совсем без второй проверки нельзя, потому что не просто целое число, а ещё и не равное 0. Поэтому вместо <= надо ==.

update: паправил статью

Это сообщение отредактировал(а) djandrey - 11.8.2010, 18:19
PM MAIL WWW Jabber   Вверх
MaXL
Дата 12.8.2010, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Developer
**


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

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



тогда не проще ли написать так
Код

if ( param($p) !~ m/^[1-9]\d*$/ )

?
UPD: понял, строки вида '01' не будут проходит под такой шаблон.

Это сообщение отредактировал(а) MaXL - 12.8.2010, 13:11


--------------------
MaXL
PM MAIL   Вверх
djandrey
Дата 5.9.2010, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В оригинале вообще-то было так:
Код

if ( $test !~ m/^\d+$/ or $test == 0 or $test > 4294967295 )

Но проверка выхода за пределы длинного числа из статьи выпилина, ибо специфика конкретного приложения,
но стоит иметь в виду, что иногда надо при взаимодействии с БД или со штуками со строгой типизацией, чтобы число не привысило некоего порога по длинне строки при приведении к строке, либо диапазона значений, который можно хранить в N байтах и т. п.

А, чё я, собсна, пришёл сказать. Вопреки игнорированию или несогласию (которое, возможно есть/будет, да ещё не высказано), я таки изложил статью в виде подкаста (чуть менее чем полтора часа сырого материала). Осталось нудное: смонтировать, свести и выложить на суд программерский. Непонятку с кодом решил просто: к коротким примерам (которые в пару-тройку строк для самой минимальной сути) просто отсылаю посмотреть код в статье, о больших примерах говорю, какую задачу они решают простыми словами без унылого зачитывания. Сроков не называю. Хочу, чтобы этот труд был интереснее и доступнее, т. к. воспринимать такой узконаправленный и настолько гиковский материал в виде подкаста, имхо, дело совсем непривычное.

Это сообщение отредактировал(а) djandrey - 5.9.2010, 00:52
PM MAIL WWW Jabber   Вверх
KSURi
Дата 5.9.2010, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А вы в курсе, что \d, при включенной директиве utf8, матчит не только арабские цифры, но и, например, вьетнамские и арабо-индийские?
Код

$ perl -Mutf8 -E'say "٠١٢٣٤٥٦٧٨" =~ /^\d+$/'
1
$



--------------------
Died at Life.pl line 21
PM Jabber   Вверх
djandrey
Дата 21.10.2010, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(KSURi @ 5.9.2010,  12:04)
А вы в курсе, что \d, при включенной директиве utf8, матчит не только арабские цифры, но и, например, вьетнамские и арабо-индийские?
Код

$ perl -Mutf8 -E'say "٠١٢٣٤٥٦٧٨" =~ /^\d+$/'
1
$

Догадывался, вроде даже мельком пробегался по этому делу в доках, но лично НЕ тестировал. Пример отличный.

P.s.
На данный момент в подкасте 38 пунктов (он ещё не готов, монтирую).
И про -T там уже есть.
В текстовой версии ещё нет, но со временем появится.


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


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

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


 




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


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

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