Nejste přihlášeni
Stránky 1
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
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

Offline
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
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
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
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
To je v pořádku. Podmínka ve funkci Zneskodnit také způsobuje, že už se ten příkaz v podmínce neprovede.
Offline
Stránky 1