Sziasztok! Unatkoztam, és elkészítettem ezt a rendszert, ami nem engedi betölteni az oldalt, ha a $copyright változót átírod bármire, ami nem a ReSIk szöveg, vagy törlöd. Ha a változó egyezik a ReSIk szöveggel, akkor két Lorem ipsumos bekezdés, illetve egy copyright felirat töltődik be, vagyis az oldal tartalma. Ez a rendszer kijátszható, ha valaki kicsit is konyít a PHP-hoz, de kezdőknek jól jöhet, valamint szereztném ezt a rendszert fejleszteni, és egy komolyabb systemet szeretnék alkotni. Készítési idő: 2-3 perc.
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
<html>
<head>
<?php
$copyright = \"ReSIk\";
?>
<title>Valami</title>
<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\" />
<meta name=\"author\" content=\"<?php echo $copyright; ?>\" />
<meta name=\"copyright\" content=\"<?php echo $copyright; ?>\" />
</head>
<body>
<?php
if ( $copyright != \"ReSIk\" )
{
while ( 1 )
{
echo \"<script language=\'JavaScript\'>alert(\'Biztonsági rendszer bekapcsolt! Írd vissza a copyrightot ReSIk-re!\')</script>\";
}
break;
}
elseif ( $copyright == NULL )
{
while ( 1 )
{
echo \"<script language=\'JavaScript\'>alert(\'Biztonsági rendszer bekapcsolt! Írd vissza a copyrightot ReSIk-re!\')</script>\";
}
break;
}
elseif ( !isset ( $copyright ) )
{
while ( 1 )
{
echo \"<script language=\'JavaScript\'>alert(\'Biztonsági rendszer bekapcsolt! Írd vissza a copyrightot ReSIk-re!\')</script>\";
}
break;
}
?>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque accumsan viverra odio sed molestie. Curabitur suscipit, turpis et dictum tempus, lorem massa efficitur tortor, ut auctor est nisl in dui. Cras pretium magna ut lorem hendrerit, a mollis dui hendrerit. Aenean tincidunt ligula erat, eu tincidunt nisi mollis in. Donec tristique est quis purus pretium ultricies. Nulla facilisi. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec rutrum et justo ut malesuada. Donec purus leo, ornare mattis lacus sed, commodo ultricies ante. Integer pellentesque dignissim ipsum sit amet tristique. Donec turpis sem, fermentum ut laoreet at, hendrerit venenatis diam. Curabitur arcu diam, vulputate in nisl et, pulvinar posuere sem. Nunc tempor tellus eu aliquam auctor.</p>
<p>In blandit vel massa eget tristique. Pellentesque in purus sem. Nunc pharetra neque sit amet nisl dictum, in rutrum nisl fermentum. Pellentesque at lacinia mauris. Maecenas eget justo sit amet velit accumsan ultrices. Donec fringilla tortor non ex vestibulum tempus. Sed imperdiet finibus purus et blandit. Fusce aliquet mattis dolor. Donec luctus arcu eu tellus finibus, in hendrerit ex tristique.</p>
<?php
echo \"<center>\";
echo \"© \" . date ( \"Y\" ) . \" \" . $copyright;
echo \"</center>\";
?>
</body>
</html>
Ha mondjuk ezt beépíted egy hosszú kódba úgy, hogy valahol (például felül) deklarálod a copyright változót, valahol lejjebb pedig elrejted a kódot, akkor meglátja az illető felül a copyrightot, átírja, és nyilván nem foglalkozik vele, hogy lejjebb is van kód... És mint feljebb írtam, ahogy bővül a tudásom, fejleszteni fogom a kódot. :)
Asdelon a következő részletet kifogásolta:
<?php
if ( $copyright != \"ReSIk\" )
{
while ( 1 )
{
echo \"<script language=\'JavaScript\'>alert(\'Biztonsági rendszer bekapcsolt! Írd vissza a copyrightot ReSIk-re!\')</script>\";
}
break;
}
elseif ( $copyright == NULL )
{
while ( 1 )
{
echo \"<script language=\'JavaScript\'>alert(\'Biztonsági rendszer bekapcsolt! Írd vissza a copyrightot ReSIk-re!\')</script>\";
}
break;
}
elseif ( !isset ( $copyright ) )
{
while ( 1 )
{
echo \"<script language=\'JavaScript\'>alert(\'Biztonsági rendszer bekapcsolt! Írd vissza a copyrightot ReSIk-re!\')</script>\";
}
break;
}
?>
A
$copyright != ReSIk magába foglalja azt is, mikor a változó értéke
NULL, vagy nincs beállítva (
!isset).
<?php
if ( $copyright != \"ReSIk\" )
{
while ( 1 )
{
echo \"<script language=\'JavaScript\'>alert(\'Biztonsági rendszer bekapcsolt! Írd vissza a copyrightot ReSIk-re!\')</script>\";
}
break;
}
?>
Viszont mivel egy állandóan futó ciklus alá raktad mindezt, ezért az alap PHP
max_execution_time alapján 30 másodpercig csak egy tölteni fog kliensoldalon (addig nem kap választ a szervertől, mivel a PHP szerveroldali - de ez a
set_time_limit függvénnyel, php.ini-ben, stb. állítható; szerverkonfigurációtól függően más hibák is előfordulhatnak, mikor a végeredmény el sem jut a felhasználóig), azonban neked feltehetőleg nem az oldal betöltésének a meggátolása a célod elsősorban a kódot tekintve (ezen egyébként a break sem segít, az a while után fut le, ami sosem fut le), hanem az, hogy végtelen alert-et kapjon a kliens, ami inkább így oldható meg:
<?php
if ( $copyright != \"ReSIk\" )
{
echo \"<script language=\'JavaScript\'>while(1){alert(\'Biztonsági rendszer bekapcsolt! Írd vissza a copyrightot ReSIk-re!\')}</script>\";
}
?>
Így kliensoldalon, JavaScript-ben van a végtelenszer lefutó while ciklus.
Gyakorlásnak jó, de semmi másra, ahogyan Asdelon is írta, csak át kell írnod a változó értékét, habár például az
eval,
base64,
md5 (és még rengeteg hash), továbbá rengeteg függvény a segítségedre lehet, szinte semmit sem érsz velük, ha valaki egy kicsit is ért ezekhez, hacsak az egész kódot nem enkódolod például (a fizetős)
ionCube használatával.