Комментарии
Комментарии
Pilat 2 января 2010 в 14:37
24. Принимайте меры против подбора пароля.
Задержка входа – простейший, но при этом уже достаточно неслабый способ. Сведет на нет ручной перебор и автоматический однопоточный перебор с одного компьютера.
только задосить такой сайт – дело минут.
DJ-Andrey-sXe 3 января 2010 в 06:32
Pilat, 24-й пункт непростой, если следовать только его части, то это реально чревато и DoS и нежелательными блокировками. А если всё продумано и предусмотрено, то попытавшийся положить сервер атакой на задержку входа (полагаю, вы имели ввиду, рассчитывая израсходовать ресурсы или их лимиты, многопоточно калбася скрипты, не дожидаясь ответа) очень быстро влетит в бан по порогу «Requests per second» на заслуженный отдых.
Мой друг как-то предложил идею хранить месяц истории попаданий в бан и если побывавший в бане IP снова возжелал покрошить сервер, то новый бан следует выдавать на более длительный срок. Например, вернулся после 5 минут – выдаём 10, вернулся ещё раз – 30, ещё – 2 часа, ещё – сутки. Ну, если уж делать, то что в веб-морде должен быть список банов с функцией преждевременного снятия, это, думаю, и так понятно.
KoXX 4 января 2010 в 02:55
Интересно, а главное познавательно Спасибо :)
Willie 7 января 2010 в 04:23
Ну наконец! Свежая инфа. Как раз доклад делаю по смежной теме
Zenon 8 января 2010 в 12:40
Спасибо. Очень понравилось :)
Vavila 8 января 2010 в 14:09
Да, а ведь написано действительно хорошо..
Paul 13 марта 2010 в 14:16
Вообще, если всё это реализовать, уйдёт очень много времени.
DJ-Andrey-sXe 13 марта 2010 в 21:26
Paul,
1) Не каждый проект требует выполнения всех пунктов подряд. Элементарно может не быть таких функций, которые потребовали бы именно такого типа защиты или специфика может освободить от выполнения многих пунктов.
2) Защита – важная вещь, не стоит жалеть на неё времени. Потому что когда проект сломают, сразу станет понятно, что время потратить всё-таки стоило.
3) Если защищать по полной программе первый проект, это трудно. Второй и последующие защищаются частично прямо во время написания, когда правила уже в голове, частично после, заимствованием своего же собственного кода из предыдущих защищённых проектов. Таким образом экономится время.
DJ-Andrey-sXe 7 августа 2010 в 21:45
Старая версия с 18 пунктами (та, что первая публичная, аккуратная, без этих свежих добавок с TODO) всё-таки сохранилась: http://web.archive.org/web/20080214113508/http://rusdj.chat.ru/articles/perl-webapp-protection/perl-webapp-protection.html http://web.archive.org/web/20080214113508/http://rusdj.chat.ru/articles/perl-webapp-protection/perl-webapp-protection.html
Alex 12 ноября 2010 в 23:29
К пункту 21. Да, наличие файла robots.txt более чем необходимо.
Arch 3 декабря 2010 в 03:21
Cтатья отличная, много почерпнул, много переосмыслил. СПАСИБО за материал!
DJ-Andrey-sXe 19 декабря 2010 в 23:54
На основе статьи сделан подкаст.
TODO: на хабр (не взяли), на арпод
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Комментарии
Комментарии Напоследок рассмотрим одну очень важную возможность HTML, которая, хоть и не касается напрямую Web-дизайна, но сильно поможет забывчивым Web- дизайнерам.Комментарий — это фрагмент HTML-кода, который не выводится на Web- страницу и вообще не обрабатывается
Комментарии CSS
Комментарии CSS В главе 2 мы узнали о комментариях — особых фрагментах HTML-кода, которые не обрабатываются Web-обозревателем и служат для того, чтобы Web-дизайнер смог оставить какие-то заметки для себя или своих коллег. Для этого язык HTML предоставляет специальный
Комментарии:
Комментарии: Как бы так это заделать??? Во первых, статья очень хорошая и полезная, спасибо. Применил в реальной программе я этот сингелтон и остался очень доволен. Но мне надо было несколько изменить поведение исходного класса. У меня ситуация такая: есть клиент, который
Комментарии:
Комментарии: template‹class TRet, class TP1› class CDelegate1 { //… }; template‹class TP1› class CDelegate1‹bool, TP1› { //… }; template‹class TRet, class TP1, class TP2› class CDelegate2 { //… }; template‹class TP1, class TP2› class CDelegate2‹bool, TP1, TP2› { //… }; и т.д… Андрей 20.3.2003 12:22 ... и статической T не надо А мне как то больше понравился такой
Комментарии
Комментарии Вплоть до этого времени я тщательно избегал темы комментариев. Вы могли бы подумать, что это будет простая тема... в конце концов компилятор совсем не должен иметь дела с комментариями; он просто должен игнорировать их. Чтож, иногда это так.Насколько простыми
21. Комментарии в СИ++
21. Комментарии в СИ++ Часто бывает необходимо вставлять в программу текст, который используется в качестве комментария только для читающего программу человека и не учитывается компилятором в программе. В C++ это возможно осуществить одним из двух способов. Символы /*
R.2.2 Комментарии
R.2.2 Комментарии Символы /* начинают комментарий, который завершается символами */. Такие комментарии не могут быть вложенными. Символы // начинают комментарий, который завершается концом этой строки. Символы //, /* и */ не имеют специального назначения в комментарии // и
Комментарии
Комментарии Комментарии помогают сделать ваш код более читабельным. Они не влияют на то, что выводит программа. Они написаны специально для того, чтобы вы их прочли. Все комментарии в Bash начинаются с хэш-символа #, за исключением первой строки (#!/bin/bash), имеющей специальное
Комментарии
Комментарии Комментарии — это фрагменты исходного текста программы, которые не компилируются и служат для пояснения кода. Для обозначения комментариев в программах на языке Object Pascal используют следующие конструкции:• // — комментарии в одной строке;• { } или (* *) —
Комментарии:
Комментарии: наследование операторов ›Дело в том, что в языке C++ операторы не наследуются. Это не верно по крайней мере для MSVC++. Более того этот метод используется при написании функтора из библиотеки Loki http://fara.cs.uni-potsdam.de/~kaufmann/?page=lokiport (файл Functor.h), см. также
Комментарии
Комментарии Это правило выглядит достаточно просто:----Правило № 3. Помещайте в код комментарии. Объясняйте ваши допущения (более того, проверяйте их с помощью утверждений). Описывайте сложные блоки кода. При изменении кода изменяйте и соответствующие комментарии. Не
Комментарии
Комментарии Комментарий — это последовательность символов, которая воспринимается компилятором языка Си как отдельный пробельный символ и игнорируется. Комментарий имеет следующий вид:/* <символы> */<символы> должны принадлежать множеству представимых символов.
Комментарии:
Комментарии: Небольшое добавление Искал способ попроще включить поддержку ToolTips без явного использования класса CToolTipCtrl. И в результате сам сделал следующее: int CContentWnd::OnToolHitTest(CPoint point, TOOLINFO* pTI) const { int nHit=0; CString csText; csText="Закрыть окно"; HWND m_hWnd=this->GetSafeHwnd(); pTI->hwnd =
Комментарии:
Комментарии: Не всегда корректный код Вы приводите указатель на функцию-член класса клиента к указателю на функцию из конкрентного класса (slot::Thunk), это для некоторых классов может быть невозможно, ошибка компилятора, что-то типа "указатели имеют разную природу",
1.2 Комментарии
1.2 Комментарии Часто бывает полезно вставлять в программу текст, который предназначается в качестве комментария только для читающего программу человека и игнорируется компилятором в программе. В С++ это можно сделать одним из двух способов.Символы /* начинают
2.1 Комментарии
2.1 Комментарии Символы /* задают начало комментария, заканчивающегося символами */. Комментарии не могут быть вложенными. Символы / / начинают комментарий, который заканчивается в конце строки, на которой они