Как мне защитить в основном статическое веб-приложение? - PullRequest
2 голосов
/ 08 августа 2011

Я учусь веб-разработке. До недавнего времени мои приложения просто взаимодействовали с API сторонних производителей, такими как Twilio, без пользовательского интерфейса. Мне нравится CherryPy, потому что он достаточно прост и не мешает мне.

Я бы хотел создать в основном статичный персональный сайт с некоторыми динамическими функциями. Я планирую использовать CherryPy для обслуживания HTML и обрабатывать запросы AJAX от jQuery, чтобы предоставить интерактивный и доступный пользовательский интерфейс для таких вещей, как форма обратной связи по электронной почте.

Однако у меня есть некоторые проблемы с безопасностью. Я родом из системного администратора; поэтому я знаю о различных векторах атаки, которые можно использовать (XSS / CSRF и т. д.). Я также знаю, что CherryPy не обеспечивает защиту "из коробки". Я уже планирую защитить форму контакта с помощью reCaptcha. Что еще я могу сделать? Есть ли библиотека форм для Python / CherryPy, которая предлагает базовую защиту фильтрации? Есть ли бесплатный инструмент, который я могу использовать для проверки своего приложения на наличие таких уязвимостей?

Ответы [ 2 ]

4 голосов
/ 08 августа 2011

reCaptha (и другие подобные инструменты) предназначены не для безопасности, а для предотвращения злоупотреблений. Если ваш код в порядке, вам не понадобится Capcha для защиты вашего сайта, если только вы не хотите работать полный рабочий день, удаляя весь спам из вашего почтового ящика.

Я обнаружил, что добавление небольшого самодельного трюка в почтовую форму работает намного лучше, чем встроенная капча. Я добавил в форму скрытое поле ввода с именем «электронная почта». Боты обрежут вашу страницу и попытаются ввести разумные значения во все поля ввода. Если они введут значение в этом скрытом поле, вы можете быть уверены, что имеете дело с ботом. Я обнаружил, что этот трюк работает на удивление хорошо.

0 голосов
/ 08 августа 2011

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

...