Защита от хакване

Ако е от SQL Injection ти препоръчвам това.

session_start();
function zashtita($tekst)
{
if ( (int)$tekst )
return $tekst;
else
{
$tekst = addslashes($tekst);
$tekst = htmlspecialchars($tekst, ENT_NOQUOTES);

return $tekst;
}
}

$_GET = array_map("zashtita", $_GET);
$_POST = array_map("zashtita", $_POST);
$_SESSION = array_map("zashtita", $_SESSION);
$_COOKIE = array_map("zashtita", $_COOKIE);
$_SERVER = array_map("zashtita", $_SERVER);

Прави заявките благоприятни и безопасни.
 
DeathGuard_ каза:
Пред array-овете може да сложиш @
Като му казваш да го сложи, поне му кажи и за какво се слага.
@ - слага се за да не показва грешки (ако има такава)
 
session_start();
function zashtita($tekst)
{
if ( (int)$tekst )
return $tekst;
else
{
$tekst = addslashes($tekst);
$tekst = htmlspecialchars($tekst, ENT_NOQUOTES);

return $tekst;
}
}

$_GET = @array_map("zashtita", $_GET);
$_POST = @array_map("zashtita", $_POST);
$_SESSION = @array_map("zashtita", $_SESSION);
$_COOKIE = @array_map("zashtita", $_COOKIE);
$_SERVER = @array_map("zashtita", $_SERVER);
 
DevNull каза:
session_start();
function zashtita($tekst)
{
if ( (int)$tekst )
return $tekst;
else
{
$tekst = addslashes($tekst);
$tekst = htmlspecialchars($tekst, ENT_NOQUOTES);

return $tekst;
}
}

$_GET = @array_map("zashtita", $_GET);
$_POST = @array_map("zashtita", $_POST);
$_SESSION = @array_map("zashtita", $_SESSION);
$_COOKIE = @array_map("zashtita", $_COOKIE);
$_SERVER = @array_map("zashtita", $_SERVER);
Може ли да попитам в кой файл се слага ..
Или се прави нов и ако се прави нов,моля кажете точно какво.. ;)
Благодаря Ви предварително ..! :oops:
 
Ами другите са ясни :) да слагаш силни пароли с букви, цифри и символи, да променяш CP паролата отвреме навреме, ако имаш странициране да прави проверки дали горе номерата на страниците са цифри и това е според мен ;) То ако някой се навие - ще го хакне както и да е защитен, вземи за пример сайта на пентагона - що защити има а 19 годишно хлапе го хакна ;]
 
Днес су играх в един сайт ор рода на hts, и стигнах го следната sql инжекция:

http://********.com/index.php?id=1+union+select+null,null,null,concat(username,0x3a,password),null--

Дори и след addslashes() и htmlspecialchars() горната заявка е все още валидна.Аз бих ти препоръчал да проверяваш всеки низ,който използваш в заявките ти да го проверяваш да не съдържа следните думи:
union,select,or и т.н.

:)
 
DevNull каза:
session_start();
function zashtita($tekst)
{
if ( (int)$tekst )
return $tekst;
else
{
$tekst = addslashes($tekst);
$tekst = htmlspecialchars($tekst, ENT_NOQUOTES);

return $tekst;
}
}

$_GET = @array_map("zashtita", $_GET);
$_POST = @array_map("zashtita", $_POST);
$_SESSION = @array_map("zashtita", $_SESSION);
$_COOKIE = @array_map("zashtita", $_COOKIE);
$_SERVER = @array_map("zashtita", $_SERVER);

И аз да задам едно въпросче към темата. След като този код е в config.php няма да ми се налага да слагам addslashes и htmlspecialchars на всяка GET/POST/SESSION... така ли?
 
vankich каза:
DevNull каза:
session_start();
function zashtita($tekst)
{
if ( (int)$tekst )
return $tekst;
else
{
$tekst = addslashes($tekst);
$tekst = htmlspecialchars($tekst, ENT_NOQUOTES);

return $tekst;
}
}

$_GET = @array_map("zashtita", $_GET);
$_POST = @array_map("zashtita", $_POST);
$_SESSION = @array_map("zashtita", $_SESSION);
$_COOKIE = @array_map("zashtita", $_COOKIE);
$_SERVER = @array_map("zashtita", $_SERVER);

И аз да задам едно въпросче към темата. След като този код е в config.php няма да ми се налага да слагам addslashes и htmlspecialchars на всяка GET/POST/SESSION... така ли?
Да
 
vankich каза:
DevNull каза:
session_start();
function zashtita($tekst)
{
if ( (int)$tekst )
return $tekst;
else
{
$tekst = addslashes($tekst);
$tekst = htmlspecialchars($tekst, ENT_NOQUOTES);

return $tekst;
}
}

$_GET = @array_map("zashtita", $_GET);
$_POST = @array_map("zashtita", $_POST);
$_SESSION = @array_map("zashtita", $_SESSION);
$_COOKIE = @array_map("zashtita", $_COOKIE);
$_SERVER = @array_map("zashtita", $_SERVER);

И аз да задам едно въпросче към темата. След като този код е в config.php няма да ми се налага да слагам addslashes и htmlspecialchars на всяка GET/POST/SESSION... така ли?
Не, това му е целта...
 
FestarBG каза:
Днес су играх в един сайт ор рода на hts, и стигнах го следната sql инжекция:

http://********.com/index.php?id=1+union+select+null,null,null,concat(username,0x3a,password),null--

Дори и след addslashes() и htmlspecialchars() горната заявка е все още валидна.Аз бих ти препоръчал да проверяваш всеки низ,който използваш в заявките ти да го проверяваш да не съдържа следните думи:
union,select,or и т.н.

:)
Ако можеш да ми кажеш как става ?
 
Ето как става:
<?php
$get = $_GET['id'];
if(preg_match("/union/i",$get,$bb) OR preg_match("/select/i",$get,$bb) OR preg_match("/or/i",$get,$bb) OR preg_match("/-/i",$get,$bb)){
echo "Благодарим Ви!Ще предадем на НСБОБ";
$sleep = sleep(15);
if($sleep == true) {
echo "Ооопс пренатоварихме се ,изчакайте няколко секунди";
}
die();
exit(); // да се подсигурим .... :D
}
?>
ако УРЛ-то е http://site.com/site.php?id=1+select и т.н няма да стане нищо
 
lam3r4370 каза:
Ето как става:
<?php
$get = $_GET['id'];
if(preg_match("/union/i",$get,$bb) OR preg_match("/select/i",$get,$bb) OR preg_match("/or/i",$get,$bb) OR preg_match("/-/i",$get,$bb)){
echo "Благодарим Ви!Ще предадем на НСБОБ";
$sleep = sleep(15);
if($sleep == true) {
echo "Ооопс пренатоварихме се ,изчакайте няколко секунди";
}
die();
exit(); // да се подсигурим .... :D
}
?>
ако УРЛ-то е http://site.com/site.php?id=1+select и т.н няма да стане нищо

И ако през това поле се предава текст какво правим?
 
не , пак си ги слагай , но така имаш 1 клас по-добра сигурност. също ако имаш система за качване на снимки/файлове по добре проверявай форматите на файловете който се качват , и направи така че да ги преименува , за да е по-сигурно..
също така като имаш някаде
примерно
index.php?page=home

ако си го направил така:

$променлива=$_GET['page'];
include_once "$променлива.php"; // или нещо такова
по-добре го махни защото има начини и така да се хакне ;]
 
proba каза:
не , пак си ги слагай , но така имаш 1 клас по-добра сигурност. също ако имаш система за качване на снимки/файлове по добре проверявай форматите на файловете който се качват , и направи така че да ги преименува , за да е по-сигурно..
също така като имаш някаде
примерно
index.php?page=home

ако си го направил така:

$променлива=$_GET['page'];
include_once "$променлива.php"; // или нещо такова
по-добре го махни защото има начини и така да се хакне ;]
Ще провериш дали $променлива е истински файл
if(is_file($promenliva))
{
//fail e
include...
}
else
{
//ne e fail
}
 

Горе