При опит за хакване да банва хакера.

ReD_z0n3

Registered
може ли код , при който някой се опита да хакне сайта да го банне или да му забрани достъпа до сайта. :)
 
ReD_z0n3 каза:
може ли код , при който някой се опита да хакне сайта да го банне или да му забрани достъпа до сайта. :)

От това няма смисал според мене,защото може по погрешка да направи нещо и да го банне..моя съвет е просто да сложиш 1 logger,който да записва ип-то му,часа и т.н.Иначе то трябва да е от проверката(примерно за провяряване дали същестува дадено ид):

Код:
$id=(int)$_GET['id'];
$rs=mysql_query('SELECT * FROM users WHERE user_id="'.$id.'")
if(mysql_num_rows==1)
{
echo 'id-to syshtestvuva'; 
}
else
{
 //тука кода за бан.
}
 
ReD_z0n3 каза:
Този код къде да го сложа ?!

Просто ти дадох пример,как може да стане.Не ти знам кода на страницата,за да ти го направя точно,но разгледаи го :)
 
xmmm каза:
ReD_z0n3 каза:
Този код къде да го сложа ?!

Просто ти дадох пример,как може да стане.Не ти знам кода на страницата,за да ти го направя точно,но разгледаи го :)

Нямам код , за това искам някой да ми даде :D
 
PHP:
<?php
$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,"-1") OR 
strstr($queryString,"--") OR
strstr($queryString,"UNION") OR 
strstr($queryString,"DROP") OR 
strstr($queryString,"@")) {
	$loc = $_SERVER['PHP_SELF'];
	$ip = $_SERVER['REMOTE_ADDR'];
	$date = date ("d-m-Y @ h:i:s");
	$query = mysql_query ("INSERT INTO table_name (date, ip, loc, queryString) VALUES ('$date', '$ip', '$loc', '$queryString')");
	echo "<font color=\"red\"><center><b>Вашата атака е деактивирана и записана успешно! <br /><br />
	Attack Date: $date<br />
	Attacker IP: $ip<br />
	Attack: $loc?=$queryString <br /><br />
	<h1>ATTACKER $IP</h1><br /></b></center></font>";
}
?>

[sql]CREATE TABLE table_name(
id(10) unsigned NOT NULL auto_increment,
date varchar(255) NOT NULL,
ip varchar(255) NOT NULL,
loc varchar(255) NOT NULL,
queryString varchar(255) NOT NULL,
PRIMARY KEY (ban_id),
KEY id (id)
);[/sql]

Праскаш кода примерно в zashtita.php / security.php и го includ-ваш най-отгоре. След като файла има връзка с базата данни всичко ти е готово :P

После си правиш една проверка дали потребителя, го има в базата т.е.:


PHP:
$ip = $_SERVER['REMOTE_ADDR'];
if (mysql_query("SELECT * FROM `table_name` WHERE ip='$ip'")){
	echo "Вие сте баниран поради опит за хакване на сайта!";
}
 
Мерси всичко е ясно , само не разбрах този код къде трябва да се сложи ..

PHP:
$ip = $_SERVER['REMOTE_ADDR'];
if ($query= mysql_fetch_array(mysql_query("SELECT * FROM `table_name` WHERE ip='$ip'"))){
        echo "Вие сте баниран поради опит за хакване на сайта!";
}
 
Когато се опитам да създам база данни ми изписва това.

Код:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(10) unsigned NOT NULL auto_increment, date varchar(255) NOT NULL, ' at line 2
 
PHP:
$ip = $_SERVER['REMOTE_ADDR'];
if ($query= mysql_fetch_array(mysql_query("SELECT * FROM `table_name` WHERE ip='$ip'"))){
        echo "Вие сте баниран поради опит за хакване на сайта!";
}

Примерен index.php
PHP:
<?php
include ('config.php');
include ('security.php');

$ip = $_SERVER['REMOTE_ADDR'];
if ($query= mysql_fetch_array(mysql_query("SELECT * FROM `table_name` WHERE ip='$ip'"))){
        echo "Вие сте баниран поради опит за хакване на сайта!";
}

//tvoq kod
?>

ЕДИТ: SQL.sql
[sql]CREATE TABLE IF NOT EXISTS `table_name` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`date` varchar(100) NOT NULL,
`ip` int(100) NOT NULL,
`loc` varchar(250) NOT NULL,
`queryString` varchar(250) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM ;[/sql]
 
Когато сложа всичко ми излиза това.

Код:
[phpBB Debug] PHP Notice: in file /home/hldscs/public_html/index.php on line 7: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Edit: Ред 7-ми
PHP:
if ($query= mysql_fetch_array(mysql_query("SELECT * FROM `table_name` WHERE ip='$ip'"))){
 
PHP:
$ip = $_SERVER['REMOTE_ADDR'];
if (mysql_fetch_array(mysql_query("SELECT * FROM `table_name` WHERE ip='$ip'";))){
        echo "Вие сте баниран поради опит за хакване на сайта!";
}

Пробвай така :?:
 
PHP:
$ip = $_SERVER['REMOTE_ADDR'];
if (mysql_query("SELECT * FROM `table_name` WHERE ip='$ip'")){
        echo "Вие сте баниран поради опит за хакване на сайта!";
}
 

Back
Горе