Стеганография средствами Apache и PHP
12 июля 2006
Из Википедии:
Стеганография — в переводе с греческого дословно означает «тайнопись». Это наука о скрытой передаче информации путём сохранения в тайне самого факта передачи. В отличие от криптографии, которая скрывает содержимое секретного сообщения, стеганография скрывает само его существование.
Что сделает злоумышленник, который не найдёт на сайте ни одного скрипта? Кроме как сдаться ничего и не останется...
Итак, как же это всё реализовать?
Первое, что нам понадобится - обработчик ошибок. Напишем его на php.
//Файл error.php //Посылаем правильный заголовок header('HTTP/1.0 404 Not Found'); //Выводим информацию для пользователя print('Ошибка, страница не найдена.');
В htaccess добавим:
[apache] ErrorDocument 404 error.php
Теперь добавляем ко всем нашим скриптам входной get параметр mode и если он не указан или неправильно указан - запускаем наш обработчик ошибок для выдачи ошибки 404. Если же всё указано правильно - выполняем скрипт.
//Файл index.php //Если передан параметр и подходящее значение if(isset($_GET['mode']) && $_GET['mode']=='display'){ //Выполняем скрипт print('Результат работы скрипта'); } else{ //Иначе прикидываемся отсутствующим include('error.php'); }
Таким образом, если в адресной строке наберём
http://www.oursite.ru/index.php
получим ошибку об отсутствии такого файла на сервере.
Для обращения к скрипту используем
http://www.oursite.ru/index.php?mode=display
Далее делаем красивые, но неудобные для злоумышленника URL, как описано в моей статье "Красивые адреса на сайте".
Если вкратце, это делается это путём вписывания в htaccess
[apache] RewriteEngine On RewriteRule display/? index.php?mode=display
Теперь наш скрипт доступен как
http://www.oursite.ru/display/
Далее перейдём к файлам, к которым обычно запрещают доступ (файлы паролей, данные для скриптов, конфигурация). По ним злоумышленник может определить, что за скрипт мы используем.
Все левые файлы вместо того, чтобы запретить к ним доступ можно и даже нужно скрыть. Это ещё больше собьёт нашего недоброжелателя с толку и, кроме того, также не позволит получить их.
Делается это так:
[apache] RewriteEngine On RewriteRule config/?.* error.php RewriteRule password.txt error.php
Вот в принципе и всё. Надеюсь, статья поможет вам в защите ваших сайтов.
p.s. используйте стеганографию, но не забывайте и о защите.
Комментарии RSS по email OK
Чушь/.