Безопасность и php - PullRequest
       2

Безопасность и php

1 голос
/ 09 февраля 2011

Итак, у меня есть веб-сайт, который с учетом пожеланий пользователей сгенерирует /home/content/s/a/m/p/l/e/users/profile/index.php.Мой настоящий вопрос: это безопасно?Это то, что я делаю, чтобы попытаться санировать входные данные пользователей, если их больше, пожалуйста, дайте мне знать.

strip_tags(html_entity_decode($mysqli->real_escape_string($title)), ALLOWED_TAGS);
ALLOWED_TAGS = "<br><p><b><i><hr>";

Так как я относительно новичок в разработке этого сайта, мне интересноподход, потому что это снимает нагрузку с использования базы данных, чтобы получать одну и ту же информацию снова и снова, вместо этого просто иметь статическую страницу с информацией на ней, или это ОГРОМНАЯ дыра в безопасности?Я не знаю!:) Я не знаю, могли ли бы они сделать какую-то атаку XSS с тем, что я настроил здесь.Пожалуйста, помогите!



Майкл

PS Если у вас есть какие-либо ответы или предложения, не могли бы вы дать мне некоторое представление о том, почему это так.У меня есть степень в области компьютерных наук, поэтому мне интересно, как она работает, а не только быстрое и грязное решение.Благодаря.

Ответы [ 2 ]

2 голосов
/ 05 апреля 2011

Это контрольный список безопасности PHP, который я собрал для внутренней базы знаний моей компании.Может быть, это поможет.

  • Не используйте устаревшие функции и практики
  • Всегда проверяйте пользовательский ввод
  • Используйте заполнители при использовании значений переменных в запросе SQL.
  • Всегда экранировать переменные, используемые в запросах SQL.
  • Устанавливать правильные права доступа к каталогу
  • Всегда перегенерировать идентификатор сессии, когда пользователь каждый раз входит в систему.(Чтобы избежать перехвата идентификатора сессии)
  • Никогда не храните пароли в виде простого текста.Храните только их хэшированные значения.
  • При выводе пользовательского ввода на веб-странице всегда проверяйте наличие специальных символов html.(HTML-теги наподобие могут использоваться для атак XSS)
  • Прежде чем перейти на него, узнайте спецификации вашего сервера развертывания
  • Защита каталогов, в которых сохраняются записи журнала.
  • Установитьregister_globals to off
  • Безопасный режим PHP может быть полезен, но не рекомендуется, начиная с версии 5.3
  • Если не используется в коде, отключите систему функций и выполните exec, используя параметр disable_functions в php.ini
  • Отключить display_errors на производственных / живых серверах.
  • Проверить данные cookie
1 голос
/ 10 февраля 2011

Эта проверка ввода XSS ужасна.html_entity_decode() является противоположностью того, что вам нужно.Более того, некоторые из этих тегов, такие как тег <p>, позволяют выполнять JavaScript в обработчике событий .Короче говоря, этот код не делает дерьма, чтобы остановить xss.

Вы должны использовать htmlspecialchars($var,ENT_QUOTES); или htmlpurifer .Если вы пойдете по пути htmlpurifer, убедитесь, что вы держите это дерьмо в актуальном состоянии, его обойдут каждые пару недель, а oh и htmlpurifer очень дорого в вычислительном отношении, поскольку он использует ТЫСЯЧИ регулярных выражений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...