LINUX.ORG.RU

Как защититься от скрипт-кидди?

 script kiddie, , ,


0

1

Дано:
Есть форма, которую можно заполнить. Данные из формы записываются в базу данных, потом отображаются на генерируемой HTML-странице. То есть это простое добавление комментариев на страницу.
Что захочет сделать скрипт-кидди?

  • Навредить мне: грохнуть базу (SQL injection).
  • Навредить конечному пользователю: испортить вёрстку, добавив в своё сообщение кучу html-тэгов, а что-то зловредное на js.

Как бороться?
В первом случае нужно просто аккуратно работать с базой данных, а не как это обычно делается. Во втором случае нужно заменять все неудобные символы на соответствующий код.
Вопрос:
Как это делают? Есть типовые советы, алгоритмы, готовые библиотеки? Можно посмотреть готовую реализацию? В лоросорцах пока не дошёл до этого (или там заюзано что-то готовое, дабы велосипед не городить?), буду рад ссылкам на место, где там реализована обработка постов.
Хотя задача совершенно абстрактная, прошу принять во внимание, что у меня Apache Tomcat.

★★★★★

Последнее исправление: Klymedy (всего исправлений: 4)

бляха любым эскейпом это делается, где это такое в 2012 году еще там какие-то иньекции, да вы батенька с чем работаете? экранирует строки шаблонизатор, обычно, а в базе их эскейпит сам дбал, хранить нужно то что приходит и никак его не очищать не от чего

trashymichael ★★★
()

Ну SQL injection не будет если юзать плейсхолдеры в запросах, а не конструировать строки php-way. А чтобы защитить от тегов в случае действительно надо получать HTML и нельзя жесто эскейпить, то можно их распарсить через JSoup, пропустить через whitelist этой же библиотеки и потом сохранить

vertexua ★★★★★
()

то что ты не знаешь как защититься значит только то, что ты сам скрипт-кидди.

anonymous
()

А начем ты это все реализуешь? В любом веб-ориентированном окружении подобные инструменты входят в поставку. В том же PHP есть PDO для работы с БД, через плейсхолдеры формируешь запросы и можешь не опасаться никаких инъекций. Перед выводом htmlspecialchars или что там тебе нужно.

BaBL ★★★★★
()
Ответ на: комментарий от BaBL

Я же указал Tomcat.
Если интересуют версии, то debian 6.0.6, linux 2.6.32, openjdk-jre 6b18-1.8.13 (headless), tomcat 6.0.35, mysql 5.1.63. Библиотеки Java jsp-api 2.1, servlet-api 2.5, mysql-connector 5.1.21.

CYB3R ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.