Защита с нуля написанного своего cms

Статус
В этой теме нельзя размещать новые ответы.
Межсайтовый скриптинг и глупость создания сообщений об ошибках error

:nezn: Люди вот вчера пообщался с одним знакомым он мне расказал про межсайтовый скриптинг и просмотрев мою смс дал мне совет не выводить в скриптах строки об ошибках error приравненым нулю что это значит. Я у него спросил что вообще не писать error он сказал да и посоветовал вместо этого перенаправлять пользователя на главную страницу или на авторизацию. Какой вред это может нанести не сказал как ни как он плстно по такой тематике консультирует.

2. Обьясните мне четко ясно что такое межсайтовый скритптинг. Мой знакомый очень хорошо обьяснил, мне про это аш заслушался, но только вот было ощущение, что он читал лекцию на всемирном форуме програмистов, а не давал советы начинающему вебмастеру. Чтоб не переспрашивать его об этом еще раз, а он как ни как 2,5 часа на это угрохал. Я тактично поблагодорил его и ушел. Ваши советы и обьяснения. :ah:
 
2. Обьясните мне четко ясно что такое межсайтовый скритптинг. Мой знакомый очень хорошо обьяснил, мне про это аш заслушался, но только вот было ощущение, что он читал лекцию на всемирном форуме програмистов, а не давал советы начинающему вебмастеру. Чтоб не переспрашивать его об этом еще раз, а он как ни как 2,5 часа на это угрохал. Я тактично поблагодорил его и ушел. Ваши советы и обьяснения. :ah:


Изначально юзеру ошибки как бы и не стоит видеть, потому то и надо их от него скрывать или выдавать свой текст.

А по поводу межасайтового скриптинга:, так это же XSS и есть о котором писали выше. Для просмотра ссылки Войди или Зарегистрируйся
 
Следи, чтоб в то, что ты выводишь на экран, никогда не просочились теги, вот и все.

То есть к примеру если у тебя есть страничка
site.com/error.php?error="Недостаточно прав"
PHP:
<font color=red><b><?=$_GET[error]?></b></font>

то при желании туда можно вставить
site.com/error.php?error="<script>alert('hacked')</script>"

И это и будет в простейшем виде межсайтовый скриптинг (XSS).

Защищаться от такого можно банальным str_replace('<','&lt;',$_GET['error']); (правую скобочку при этом менять не обязательно, достаточно только какой-то одной) или юзать специально для этого существующую htmlspecialchars() Это простая и 100% защита.

А вот когда тебе понадобится возможность РАЗРЕШАТЬ некоторые теги - тогда уже конечно все намного сложнее, надо юзать kses или подобные библиотеки. htmlspecialchars блокирует просто все.
 
venetu, бред. Что если на сайте 100500 юзеров и каждый авторизуется?
Лучше по такому алгоритму делать:
... skipped ...

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

Твой способ, конечно же, тоже имеет право на жизнь. Возможно он даже проще (хотя со всеми "напоминалками" одинаково наверное получится). Но.

Блокировать акк после нескольких неправильных попыток чревато тем, что некий злоумышленник может устроить что-то типа DOSа, а точнее "заеба" легитимным юзерам, просто пройдясь по списку логинов и введя каждому по 5 раз рандомный любой пароль.

Т.е. от атаки типа "брутфорс" эта штука вполне защищает, но с неприятными для юзера последствиями. Приходится куда-то лезть, напоминать пароль ("какого хрена?"). А динамическое увеличение таймаута - оно в большинстве случаев для юзера проходит абсолютно незаметно.

На гугле после 2х неправильных попыток начинают требовать еще и каптчу. Это тоже сильно снижает вероятность подбора пароля (если при брутфорсе использовать anticaptcha - никаких денег не хватит), но я не знаю, что там происходит потом, на 20й к примеру попытке. Возможно "вам запрещено логиниться следующие 5 минут". А возможно и блокировка аккаунта, как ты сказал. (И как его потом разблокировать? А если я резервный email не указал?).

Короче хз, надо проверить. :)

Добавлено через 7 минут
Бессмысленно и опасно в принципе. bbcodes уже не рулят?

bbcodes рулят там, где нет wysiwyg редакторов. TinyMCE там всякие, FCKeditor и им подобные. Или когда не нужна возможность вставлять именно html - загружать ворд, к примеру (планктон это очень любит!), редактировать multipart/mime имейлы, копипастить код из ютуба - да много где, короче.

C bbcodes все намного проще, поэтому там где можно обойтись ими - конечно же лучше обойтись. Но и kses вполне себе работает, в том же вордпрессе все комментарии фильтруются через него и нормально, и волки сыты и овцы целы.
 
были шутки, когда кто-то брутфорсил, динамически добавляли rule в iptables.
только нужно права правильно проставить :)
 
чтобы не делать такой бардак в коде:
"SELECT * FROM products WHERE cat='" . mysql_real_escape_string($_GET['cat']) .'"

стоит цыклом пробежаться по GET и POST массивах и присвоить
$_GET['значение'] = mysql_real_escape_string($_GET['значение'])

:)

Добавлено через 2 минуты
были шутки, когда кто-то брутфорсил, динамически добавляли rule в iptables.
только нужно права правильно проставить :)

Жесть.
Только главное не забыть потом забрать их оттуда.)

Хотя стоп.
А если у провайдера один айпи для несколько сотен или тысяч пользователей? будет не весело.
 
Что такое дос атака на сайт

Люди добрые подскажите что такое дос атака на сайт если что ляпнуль сори сам впервые услышал, и как от этой заразы защититьтся
 
DOS (Denial of service - отказ работы сервиса) - это способ атаки, который выполняется с помощью большого количества обращений к серверу. Сервер в какой-то момент перестает успевать обрабатывать запросы и падает. Т.е. перестает функционировать. Смысл атаки в этом.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху