Вопросы безопасности сайта - PullRequest
2 голосов
/ 02 сентября 2010

Я создаю веб-сайт, использующий скрипт на Perl, PHP, базу данных MySQL и HTML. Моя главная задача - убедиться, что никто не сможет получить доступ ко всему, что дает ему доступ к моей информации. Я имею в виду, есть ли кто-нибудь, кто мог бы получить мой Perl-скрипт и посмотреть информацию о моей базе данных. Я знаю о внедрении SQL, но у меня нет форм для ввода информации. Есть что-нибудь, что я должен иметь в виду с этим материалом.

Ответы [ 6 ]

4 голосов
/ 02 сентября 2010

в любом случае кто-то может получить мой Perl-скрипт и просмотреть информацию о моей базе данных

Это произойдет только тогда, когда веб-сервер не анализирует / обрабатывает сценарий и возвращает его в виде открытого текста.,Обычно этот анализ / обработка происходит только для определенных расширений файлов, таких как .pl для файлов perl и .php для файлов PHP.Если вы (или хакер) переименуете его в .txt, клиент сможет получить весь скрипт в виде открытого текста.Тем не менее, если хакер может переименовать его, он все равно имеет доступ ко всему сценарию.Затем это можно сделать с помощью дыры в безопасности в FTP или CMS.

Кроме того, я видел сценарии, которые считывают файлы (обычно изображения или другие статические файлы) из (вне) контекста веб-приложения на основе пути какпараметр.Например, download.php?filename.ext Если такой сценарий не выполняет никаких проверок правильности пути к файлу, умный хакер может получить сценарии в виде открытого текста с помощью download.php?%2Fserver%2Fhtdocs%2Fscript.php.

2 голосов
/ 03 сентября 2010
  1. Используйте заполнители для SQL, даже PHP поддерживает его.

  2. Избегайте вывода.Ваша система шаблонов может помочь здесь.

  3. Используйте каталог cgi-bin.Это действительно помогает защитить случайные утечки.URL-адреса легко создавать без cgi-bin.

  4. В Perl используется режим taint, в PHP - усиленный PHP.

2 голосов
/ 02 сентября 2010

Масштабы этого вопроса являются ошеломляющими, но это большой вопрос и определенно важный.

Большая часть проблем, которые у вас возникнут с вашим сервером, может быть связана с самим доступом к серверу, убедитесь, чтоВы не используете программное обеспечение, которое вам не нужно.Если вам не нужен сервер имен, отключите привязку;То же самое касается ftp, даже sendmail, если вы можете.Если возможно, используйте надежные пароли и альтернативные порты.

Для PHP см. http://us3.php.net/manual/en/security.php и http://php -ids.org / ;обязательно используйте mysql_real_escape_string () и htmlentities ().

Для HTML / PHP / JS см. http://en.wikipedia.org/wiki/Cross-site_scripting

Есть над чем подумать.Я бы порекомендовал попытаться найти наставника, чтобы помочь вам понять, что важно.Я сейчас наставляю парня, и это ему очень помогает, даже если я не идеален.Это может помочь, но человек, которому вы доверяете, который может посмотреть, как вы делаете вещи, может дать рекомендации, которые вы просто не получите, если не разместите всю свою базу кода.

1 голос
/ 03 сентября 2010

Никогда не доверяйте никаким пользовательским данным в любой форме. Когда-либо:)

Сложная часть состоит в том, чтобы выяснить все способы, которыми пользователь может вводить данные на ваш сайт.

1 голос
/ 02 сентября 2010

Действительно, прочитайте эту вики сообщества . Это полно информации. Или просто искать здесь на stackoverflow есть много вопросов.

1 голос
/ 02 сентября 2010

Безопасность веб-приложений - большая тема. Тем не менее, вы знаете об одной из самых больших уязвимостей, SQL Injection, так что это хорошее начало.

Пара других крупных проектов - межсайтовый скриптинг (XSS) и подделка межсайтовых запросов (CSRF - "See-Surf")

XSS - http://en.wikipedia.org/wiki/Cross-site_scripting
CSRF - http://en.wikipedia.org/wiki/Csrf

Как обычно, Википедия дает хорошее вступление.

Вы также можете захотеть проверить подлинность запроса с помощью HMAC
http://en.wikipedia.org/wiki/HMAC

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