Hackers
Afgelopen nacht zijn al mijn php script door een hacker veranderd. In elk script was onderaan een javascript toegevoegd met daarin een iframe.
Ik heb de helpdesk gebeld met de vraag hoe dat kon.
Volgens de helpdesk zou ik mijn scripts moeten beveiligen.
Oke, maar hoe??
Hoe is het mogelijk dat een of andere Rus of diens computer mijn php bestanden kan overschrijven?
Inmiddels al mijn wachtwoorden veranderd, ftp en sql, maar is dat afdoende?
Volgens de hoster is er geen gebruik gemaakt van ftp.
mijn vraag: hoe kan ik dit in de toekomst voorkomen?
als je al aangeeft dat je niet weet hoe je script weet hoe je ze moet beveiligen.
zou ik me daar maar heel hard in gaan verdiepen!
http://www.phphulp.nl/php/tutorials/8/575/
http://www.phphulp.nl/php/tutorials/3/150/259/
http://www.phphulp.nl/php/tutorials/3/576/
http://www.phphulp.nl/php/tutorials/8/507/
Gewijzigd op 01/01/1970 01:00:00 door RvW Of toch niet
een script van mij die bijvoorbeeld alleen bestaat uit het volgende, zou ik niet weten hoe ik het moet beveiligen en toch was deze herschreven...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
if (empty($webkleur)){
echo ' <center> U bent vergeten een kleur te selecteren<br>Daarom maken we voor u een standaard website in de saaie kleur wit...<br> u kunt nog terug door binnen 5 seconden op terug te klikken!<br><br><form>
<input type="button" value="Ga terug" onclick="history.back()" />
</form>
';
$webkleur = 'wit';
}
if (empty($naambezoeker)){
echo ' <br><br><br><center> U bent vergeten uw naam in te vullen<br><br>
Klik op terug anders gaat u binnen 5 seconden verder op deze site zonder naam...<br><br><br>
<form>
<input type="button" value="Ga terug" onclick="history.back()" />
</form>';
}
echo "$naambezoeker, </br>" ;
echo "we gaan nu speciaal voor u een website bouwen in de kleur $webkleur </br> </br>" ;
echo' Een klein momentje...</br>
<img src="loading.gif" >
</form>
</td> ';
?>
if (empty($webkleur)){
echo ' <center> U bent vergeten een kleur te selecteren<br>Daarom maken we voor u een standaard website in de saaie kleur wit...<br> u kunt nog terug door binnen 5 seconden op terug te klikken!<br><br><form>
<input type="button" value="Ga terug" onclick="history.back()" />
</form>
';
$webkleur = 'wit';
}
if (empty($naambezoeker)){
echo ' <br><br><br><center> U bent vergeten uw naam in te vullen<br><br>
Klik op terug anders gaat u binnen 5 seconden verder op deze site zonder naam...<br><br><br>
<form>
<input type="button" value="Ga terug" onclick="history.back()" />
</form>';
}
echo "$naambezoeker, </br>" ;
echo "we gaan nu speciaal voor u een website bouwen in de kleur $webkleur </br> </br>" ;
echo' Een klein momentje...</br>
<img src="loading.gif" >
</form>
</td> ';
?>
Waar komt $webkleur vandaan? $_POST?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$tijd = date("G");
echo '<BODY BGCOLOR="Skyblue"><center><FORM ACTION="kleurinstellen.php">
<big><br><br>';
if($tijd < 6) { echo 'Goede nacht'; }
elseif($tijd < 12) { echo "Goedemorgen!"; }
elseif($tijd < 18) { echo "Goedemiddag!"; }
else { echo "Goede avond"; }
echo ' en welkom op wesleymessing.nl!</big><br><br>Graag willen we van u weten welke kleur u het mooist vindt.
<br><br>
<font color= "navy"><INPUT TYPE=RADIO NAME="webkleur" VALUE="blauw">Blauw<BR></font>
<font color= "green"><INPUT TYPE=RADIO NAME="webkleur" VALUE="groen">Groen<BR></font>
<font color= "red"><INPUT TYPE=RADIO NAME="webkleur" VALUE="rood">Rood<BR></font>
<font color= "yellow"><INPUT TYPE=RADIO NAME="webkleur" VALUE="geel">Geel<BR></font>
<font color= "purple"><INPUT TYPE=RADIO NAME="webkleur" VALUE="paars">Paars<BR></font>
Graag ook even uw naam hier invullen<br><br>
<input type="text" name="naambezoeker" value= "'.$naambezoeker.'" size="30" maxlength="50">
<br><br>
<INPUT TYPE=SUBMIT VALUE="Ga verder">
</FORM>
</center></BODY>';
?>
$tijd = date("G");
echo '<BODY BGCOLOR="Skyblue"><center><FORM ACTION="kleurinstellen.php">
<big><br><br>';
if($tijd < 6) { echo 'Goede nacht'; }
elseif($tijd < 12) { echo "Goedemorgen!"; }
elseif($tijd < 18) { echo "Goedemiddag!"; }
else { echo "Goede avond"; }
echo ' en welkom op wesleymessing.nl!</big><br><br>Graag willen we van u weten welke kleur u het mooist vindt.
<br><br>
<font color= "navy"><INPUT TYPE=RADIO NAME="webkleur" VALUE="blauw">Blauw<BR></font>
<font color= "green"><INPUT TYPE=RADIO NAME="webkleur" VALUE="groen">Groen<BR></font>
<font color= "red"><INPUT TYPE=RADIO NAME="webkleur" VALUE="rood">Rood<BR></font>
<font color= "yellow"><INPUT TYPE=RADIO NAME="webkleur" VALUE="geel">Geel<BR></font>
<font color= "purple"><INPUT TYPE=RADIO NAME="webkleur" VALUE="paars">Paars<BR></font>
Graag ook even uw naam hier invullen<br><br>
<input type="text" name="naambezoeker" value= "'.$naambezoeker.'" size="30" maxlength="50">
<br><br>
<INPUT TYPE=SUBMIT VALUE="Ga verder">
</FORM>
</center></BODY>';
?>
Is het geen mogelijkheid om je scripts te beveiligen met een CHMOD
Jouw script is dus geen goed voorbeeld, ik kan die $naambezoeker ook vullen door je script aan te roepen met ?naambezoeker=blablabla. Daarnaast draait je Webhoster met oude software/ onveilige instellingen dus leg dit probleem ook maar bij hun neer.
Dan kan jij ondertussen alles herschrijven.
Want dingen als dit:
Lijkt mij uit een WYSIWYG te komen.
En je zou hierop kunnen letten:
- Codes netjes uitlijnen, zodat je overzicht hebt.
- Variables buiten quotes.
- Controle uitvoeren op binnenkomende en uitgaande waarden.
- Geen oude rotzooi als <font> en <center> enz. gebruiken.
Dat zijn dingen die je je toch beter kan aanleren als je ooit iets wilt doen in de webdesign.
Dus nu is het al een stuk veiliger?
of moet ik nog meer aan beveiliging gaan doen?
Ik heb nooit geen studie gevolgt, heb het mezelf aangeleerd door bestaande pagina's / script te bestuderen en aan te passen zodat het voor mezelf werkt.
Ik zal ook nooit een webdesigner worden, die intensie is er niet.
Gewijzigd op 01/01/1970 01:00:00 door Dennis Messing
Je moet sowieso alle variabelen die uit een formulier komen aanroepen met $_POST['naam'].
Deze controleer je vervolgens op correctheid.
Want dit script stamt idd uit de middeleeuwen.
Toch grappig, ik had niet verwacht ooit zo'n script nog eens te zien.
Dit is niet lullig bedoelt natuurlijk. Als het jou zo is geleerd, weet je immers niet beter.
Bedankt voor je begrip Dennis, ik ben nu even een stukje script aan het herschrijven, als ik deze straks hier plaats, zou je ( jullie ) dan even kunnen kijken of dat beter is?
Share It :)
op de eerste pagina
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
<FORM ACTION="kleurinstellen.php" method="post">
INPUT TYPE=RADIO NAME="webkleur" VALUE="paars">Paars<BR
<INPUT TYPE=SUBMIT VALUE="Ga verder">
</FORM>
?>
<FORM ACTION="kleurinstellen.php" method="post">
INPUT TYPE=RADIO NAME="webkleur" VALUE="paars">Paars<BR
<INPUT TYPE=SUBMIT VALUE="Ga verder">
</FORM>
?>
en de 2e pagina:
als ik nu op de 2e pagina het volgende bovenaan zet?
Gewijzigd op 01/01/1970 01:00:00 door Dennis Messing
Nadat je op de submit knop hebt geklikt controleer je met
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
If($_SERVER['REQUEST_METHOD'] == 'POST')
[/code]
Of er op de knop is geklikt, in die if-statement kun je de POST variabele ophalen.
En post variabele ziet er zo uit:
[code][code]<?php
$_POST['naamvanveld'];
[/code]
In jouw geval is dat
[code]
[code]<?php
$_POST['webkleur'];
[/code]
Deze kan je gewoon weergeven etc.
de GET variabele gebruik je als je method="get" hebt gebruikt in je form tag
If($_SERVER['REQUEST_METHOD'] == 'POST')
[/code]
Of er op de knop is geklikt, in die if-statement kun je de POST variabele ophalen.
En post variabele ziet er zo uit:
[code][code]<?php
$_POST['naamvanveld'];
[/code]
In jouw geval is dat
[code]
[code]<?php
$_POST['webkleur'];
[/code]
Deze kan je gewoon weergeven etc.
de GET variabele gebruik je als je method="get" hebt gebruikt in je form tag
Dennis Messing schreef op 03.12.2008 14:09:
Alle 3 stukjes die je nu als voorbeeld neemt zijn fout. De eerste is onduidelijk door dat uppercase html, de 2e moet zonder quotes en de derde is een nutteloze kopie van een variabele.Hoe kan ik eigenlijk variabelen meenemen naar een volgende pagina, zoals ik voorheen gebruikte:
op de eerste pagina
en de 2e pagina:
als ik nu op de 2e pagina het volgende bovenaan zet?
op de eerste pagina
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
<FORM ACTION="kleurinstellen.php" method="post">
INPUT TYPE=RADIO NAME="webkleur" VALUE="paars">Paars<BR
<INPUT TYPE=SUBMIT VALUE="Ga verder">
</FORM>
?>
<FORM ACTION="kleurinstellen.php" method="post">
INPUT TYPE=RADIO NAME="webkleur" VALUE="paars">Paars<BR
<INPUT TYPE=SUBMIT VALUE="Ga verder">
</FORM>
?>
en de 2e pagina:
als ik nu op de 2e pagina het volgende bovenaan zet?
Check :)
Quote:
edit... moet natuurlijk dan wel overal het zelfde gebruiken....
Gewijzigd op 01/01/1970 01:00:00 door Dennis Messing
Code (php)
dat is je probleem
method= post dan gebruik je $_post
method= get dan gebruik je $_get
Stefan je let niet op hae kerel!!