js , php , html защити

eddy

Registered
Значи искам да сложа защити за js,php,html странични кодове да не целият сайта.

За момента имам

<?php
function za6titi($tekst)
{
if ( is_numeric($tekst) )
return $tekst;
else
{
$tekst = addslashes($tekst);
$tekst = htmlspecialchars($tekst, ENT_NOQUOTES);

return $tekst;
}
}

$_GET = @array_map("za6titi", $_GET);
$_POST = @array_map("za6titi", $_POST);
$_SESSION = @array_map("za6titi", $_SESSION);
$_COOKIE = @array_map("za6titi", $_COOKIE);
$_SERVER = @array_map("za6titi", $_SERVER);
?>

и на една системка за коментари имам

htmlspecialchars

Но гледам е само html ? може ли и някоя js.
 
За php примерно защита за sql injection или някой друга по масивно използвана ?

Ще разлгедам линка.
 
PHP:
<?php
header ('Content-type: text/html; charset=utf-8');
$queryString = strtolower($_SERVER['QUERY_STRING']); 
if (strstr($queryString,"<") OR strstr($queryString,">") OR strstr($queryString,"(") OR strstr($queryString,")") OR 
strstr($queryString,"..") OR 
strstr($queryString,"%") OR 
strstr($queryString,"*") OR 
strstr($queryString,"+") OR 
strstr($queryString,"!") OR 
strstr($queryString,"@")) { 
$loc = $_SERVER['PHP_SELF']; 
$ip = $_SERVER['REMOTE_ADDR']; 
$date = date ("d-m-Y @ h:i:s"); 
$lfh = "./adm/logs.php"; 
$log = fopen ( $lfh,"a+" ); 
fputs ($log, "Дата: $date | Атака от: $ip | Атака над: $loc?=$queryString\n<br>"); 
fclose($log); 
echo "<font color=black>Вашата атака беше записана, и скоро ще лапнете бана!</font>"; 
exit;
} 
?>
 
iCreatives каза:
PHP:
<?php
header ('Content-type: text/html; charset=utf-8');
$queryString = strtolower($_SERVER['QUERY_STRING']); 
if (strstr($queryString,"<") OR strstr($queryString,">") OR strstr($queryString,"(") OR strstr($queryString,")") OR 
strstr($queryString,"..") OR 
strstr($queryString,"%") OR 
strstr($queryString,"*") OR 
strstr($queryString,"+") OR 
strstr($queryString,"!") OR 
strstr($queryString,"@")) { 
$loc = $_SERVER['PHP_SELF']; 
$ip = $_SERVER['REMOTE_ADDR']; 
$date = date ("d-m-Y @ h:i:s"); 
$lfh = "./adm/logs.php"; 
$log = fopen ( $lfh,"a+" ); 
fputs ($log, "Дата: $date | Атака от: $ip | Атака над: $loc?=$queryString\n<br>"); 
fclose($log); 
echo "<font color=black>Вашата атака беше записана, и скоро ще лапнете бана!</font>"; 
exit;
} 
?>

Това забранява използването на тези симовли от strstr ?
 
eddy каза:
iCreatives каза:
PHP:
<?php
header ('Content-type: text/html; charset=utf-8');
$queryString = strtolower($_SERVER['QUERY_STRING']); 
if (strstr($queryString,"<") OR strstr($queryString,">") OR strstr($queryString,"(") OR strstr($queryString,")") OR 
strstr($queryString,"..") OR 
strstr($queryString,"%") OR 
strstr($queryString,"*") OR 
strstr($queryString,"+") OR 
strstr($queryString,"!") OR 
strstr($queryString,"@")) { 
$loc = $_SERVER['PHP_SELF']; 
$ip = $_SERVER['REMOTE_ADDR']; 
$date = date ("d-m-Y @ h:i:s"); 
$lfh = "./adm/logs.php"; 
$log = fopen ( $lfh,"a+" ); 
fputs ($log, "Дата: $date | Атака от: $ip | Атака над: $loc?=$queryString\n<br>"); 
fclose($log); 
echo "<font color=black>Вашата атака беше записана, и скоро ще лапнете бана!</font>"; 
exit;
} 
?>

Това забранява използването на тези симовли от strstr ?
Това е против XSS. Няма да могат да се ползват такива символи в URL бара. Това е най-честата и най-лесната за хакване уязвимост! :)
 
Ахам добре е.Обаче ми дава тази грешка


Warning: fopen(logs.php) [function.fopen]: failed to open stream: Permission denied in /opt/lampp/htdocs/secur.php on line 21

Warning: fputs() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/secur.php on line 22

Warning: fclose() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/secur.php on line 2

Как да му разреша правата ?
 
eddy каза:
Ахам добре е.Обаче ми дава тази грешка


Warning: fopen(logs.php) [function.fopen]: failed to open stream: Permission denied in /opt/lampp/htdocs/secur.php on line 21

Warning: fputs() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/secur.php on line 22

Warning: fclose() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/secur.php on line 2

Как да му разреша правата ?
Това е нещо от сървъра ти... На платен си работи перфектно. Не обичам да работя на домашен и затова не мога да ти помогна... Пробвай да си направиш файла log.txt . Другия вариант е да махнеш всичко свързано с него и така няма да се запазват "атакуващите", но защитата ще работи! :)
 
Еми смисъл ето на това:

galeriq.php?ppage=21

като го направя

galeriq.php?%=21

ми излиза:

Warning: fopen(logs.php) [function.fopen]: failed to open stream: Permission denied in /opt/lampp/htdocs/secur.php on line 15

Warning: fputs() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/secur.php on line 16

Warning: fclose() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/secur.php on line 17
Вашата атака беше записана, и скоро ще лапнете бана!

Значи кода си работи.

А този линк горе където ми даде като го добавя не ме отвежда никаде , седя си в същата страница.


Да те питам значи ето това ми е secur.php файла който съм го инклуднат във header.php

А header.php във всекя страница съм го сложил

PHP:
<?php
header ('Content-type: text/html; charset=utf-8');
$queryString = strtolower($_SERVER['QUERY_STRING']); 
if (strstr($queryString,"<") OR strstr($queryString,">") OR strstr($queryString,"(") OR strstr($queryString,")") OR 
strstr($queryString,"..") OR 
strstr($queryString,"%") OR 
strstr($queryString,"*") OR 
strstr($queryString,"+") OR 
strstr($queryString,"!") OR 
strstr($queryString,"@")) { 
$loc = $_SERVER['PHP_SELF']; 
$ip = $_SERVER['REMOTE_ADDR']; 
$date = date ("d-m-Y @ h:i:s"); 
$lfh = "logs.php"; 
$log = fopen ( $lfh,"a+" ); 
fputs ($log, "Дата: $date | Атака от: $ip | Атака над: $loc?=$queryString\n<br>"); 
fclose($log); 
echo "<font color=black>Вашата атака беше записана, и скоро ще лапнете бана!</font>"; 
exit;
} 
?>
<?php
function za6titi($tekst)
{
if ( is_numeric($tekst) )
return $tekst;
else
{
$tekst = addslashes($tekst);
$tekst = htmlspecialchars($tekst, ENT_NOQUOTES);
return $tekst;
}
}
$_GET = @array_map("za6titi", $_GET);
$_POST = @array_map("za6titi", $_POST);
$_SESSION = @array_map("za6titi", $_SESSION);
$_COOKIE = @array_map("za6titi", $_COOKIE);
$_SERVER = @array_map("za6titi", $_SERVER); 
?>

И сега няма нужа да слагам на всяка "post" и "get" команда

htmlspecialchars(addslashes($_POST['poasofd']));

тези "htmlspecialchars" ?
 

Back
Горе