#1 2010-10-30 13:04:07

VaclavMacurek
Člen
Registrován: 2009-12-09
Příspěvky: 124

Re: Průzkum před útokem

Vestavěné počítadlo příspěvků mi odhalilo dva průzkumy před útokem, možná i neúspěšný útok na prezentaci http://amavetmost.4fan.cz. Stalo se to třetího a osmého října tohoto roku (asi celkem zbytečná informace, že tohoto roku, tedy 2010, když prezentace byla založena teprve loni v prosinci).

Více informací v téma [PHP] Robot? na foru Živě.cz.

To jen tak pro informaci o jednom z (pravděpodobně) mnoha pokusů o útok na Endoru. Ale tím pachatelem jsem samozřejmě nebyl já sám - ledaže bych se rozhodl pro poněkud radikální test odolnosti. Jenže nejsem tak zručný programátor, abych toho byol schopen.

Offline

#2 2010-10-30 14:31:26

Lkopo
Podpora
Registrován: 2010-02-12
Příspěvky: 1,916
Web

Re: Průzkum před útokem

Robotom sa človek neubráni; je možné ich zastaviť javascriptom (vyplnením nejakého poľa, ktorý potom PHP formulár zistí, že je to robot a tak to ignoruje alebo upozorní správcu). Ak nezabudnite si ochrániť prezentáciu proti SQL Injection.


Portfólio
E-mail: eduard(at)karpiel.sk

Offline

#3 2010-10-30 14:37:30

JF
Endora rádce
Místo: ....nice u Plzně
Registrován: 2010-06-22
Příspěvky: 11,939

Re: Průzkum před útokem

Prípadne si naštuduj http://www.jakpsatweb.cz/robots-txt.html a zabráň robotom prístup na prezeranie tvojho webu. Každý robot by sa mal riadiť určitými štandardami. wink


Ján Fačkovec - Endora.cz by Webglobe
Email, Web, Webadmin, Webmail, Nápověda, Ceník

Offline

#4 2010-10-30 20:01:40

VaclavMacurek
Člen
Registrován: 2009-12-09
Příspěvky: 124

Re: Průzkum před útokem

Používám meta tag robotů. Ten samozřejmě asi moc účinný není. Soubor robots.txt jsem jen upravil z výpisu adresářů na zákaz všech. A používám i .htaccess. A pokud jde o obranu před SQL útokem, tam používám tuhle funkci

function Zneskodnit($Zadano)
{
	global $Spojeni;
	if (ini_get('magic_quotes_gpc'))
	{
		$Zadano = stripslashes($Zadano);
	}
	return mysql_real_escape_string(trim($Zadano), $Spojeni);
}

Je vypůjčená z knížky PHP a MySQL Názorný průvodce tvorbou dynamických WWW stránek.

Nepochybuji o tom, že by se ještě nějaké opatření dalo vymyslet. Ale jako první linie obrany to snad stačí.

Offline

#5 2010-10-30 20:03:49

Lkopo
Podpora
Registrován: 2010-02-12
Příspěvky: 1,916
Web

Re: Průzkum před útokem

kam presne roboti utocia?

tá funkcia je dobrá, aj keď magic_quotes bol zavrhnutý tak používam len mysql_real_escape_string; taktiež ak máte nejaký formulár vytvorte si ďalší INPUT (napr. input radio - som robot)a pomocou Javascriptu (document write) nastavte to radio na disabled - true.

Ak si neviete rady čo mám na mysli tak túto máte vysvetlené:

<form name="formular" action="spracuj-spam.php" method="post">
<!-- ... !> 
<input type="radio" name="ROBOT" value="1" disabled="false" checked="true" /> Som robot?
<input type="submit" name="odoslat" value="Odošli" />
</form>
<script type="text/javascript">
  document.formular.ROBOT.disabled=true;
  docement.formular.ROBOT.checked=false;
</script>

Malo by to fungovať, ale netestoval som; najprv zistíte či je radio robot nezaškrtnuté a vypnuté; potom vypnite v nastaveniach JavaScript a zistíte či je teraz zapnuté a zaškrtnuté radio robot. Teraz prejdime na spracovanie:

// ... php kód
if($_POST["ROBOT"])
{
// sem napíšete kód ktorý spracuje robota (napr. presmeruje naspäť:)
// header("Location: index.php");
}
// ...
?>

Portfólio
E-mail: eduard(at)karpiel.sk

Offline

#6 2010-10-30 21:22:40

VaclavMacurek
Člen
Registrován: 2009-12-09
Příspěvky: 124

Re: Průzkum před útokem

Lkopo napsal:

kam presne roboti utocia?

Roboti útočí na formuláře.

tá funkcia je dobrá, aj keď magic_quotes bol zavrhnutý tak používam len mysql_real_escape_string

O tom zavržení (alespoň doufám, že se v slovenštině význam neliší od významu v češtině) tedy čtu poprvé.
-->
Tak jo... od PHP 5.3.0.

Ovšem pokud tomu rozumím dobře, tak by ta funkce měla fungovat stále - vždyť jenom detekuje zapnuté magic_quotes a pokud zapnuté jsou, tak jen odstraní již vložená zpětná lomítka. A mimochodem, k tomu jsem si ještě z Texyly stáhnul podobnou funkci - která rovněž vypnutím magic_quotes poněkud ztrácí význam

function OdstraneniZpetnychLomitek()
{
	if(	get_magic_quotes_gpc()	)
	{
		$Prenos = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST, &$_FILES);
		while (list($NazevSkupiny, $RozmerSkupiny) = each($Prenos))
		{
			foreach ($RozmerSkupiny as $Nazev => $Hodnota)
			{
				unset($Prenos[$NazevSkupiny][$Hodnota]);
				if(	is_array($Nazev)	)
				{
					$Prenos[$NazevSkupiny][($NazevSkupiny < 5 ? $Nazev : stripslashes($Nazev))] = $Hodnota;
					$Prenos[] =& $Prenos[$NazevSkupiny][($NazevSkupiny < 5 ? $Nazev : stripslashes($Nazev))];
				}
				else
				{
					$Prenos[$NazevSkupiny][stripslashes($Nazev)] = stripslashes($Hodnota);
				}
			}
		}
	}
}

Offline

#7 2010-10-31 12:42:06

Lkopo
Podpora
Registrován: 2010-02-12
Příspěvky: 1,916
Web

Re: Průzkum před útokem

radšej použijte tu prvú funkciu. Skúste to čo som Vám napísal (to cez JavaScript)


Portfólio
E-mail: eduard(at)karpiel.sk

Offline

#8 2010-10-31 14:49:34

VaclavMacurek
Člen
Registrován: 2009-12-09
Příspěvky: 124

Re: Průzkum před útokem

Vždyť tato druhá dělá v podstatě to samé co se děje v té podmínce první funkce. Také jí mám zařazenou před použitím té první funkce. Co se týká té záležitosti s JavaScriptem, asi je to jednodušší Captcha a podobné ověřovací mechanismy s obrázky.

Offline

#9 2010-10-31 14:52:53

Lkopo
Podpora
Registrován: 2010-02-12
Příspěvky: 1,916
Web

Re: Průzkum před útokem

tá druhá funkcia nerobí nič pretože všetky príkazy sú len v podmienke ak je funkcia get_magic_quotes_gpc wink


Portfólio
E-mail: eduard(at)karpiel.sk

Offline

#10 2010-10-31 17:42:23

VaclavMacurek
Člen
Registrován: 2009-12-09
Příspěvky: 124

Re: Průzkum před útokem

To je v pořádku. Podmínka ve funkci Zneskodnit také způsobuje, že už se ten příkaz v podmínce neprovede.

Offline

Zápatí

Založeno na FluxBB | CZ a SK