2010-09-02 3 views
2

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

ответ

4

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

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

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

+0

Это отличная точка !!! –

+3

Это не единственный способ увидеть источник скрипта. :) –

2

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

Значительная часть проблем, которые вы будете иметь с вашим сервером, может быть привязана к самому доступу к серверу, убедитесь, что вы не используете какое-либо программное обеспечение, которое вам не нужно. Если вам не нужен сервер имен, отключите bind; То же самое касается 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

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

1

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

Пара других крупных из них является Cross Site Scripting (XSS) и Cross Site Request Подделка (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

1

Действительно почитайте эту community wiki. Его полная информация. Или просто искать здесь в stackoverflow есть много вопросов.

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

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

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

  4. В Perl использовать taint mode, в PHP использовать упрочненный PHP.

1

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

Твердая часть выяснить все пути пользователь может поставить вход на ваш сайт ..

Смежные вопросы