Is dit safe? Ik dacht van wel maar de site is laatst gehakt, dus even voor de zekerheid.
Bedankt,
Jean


$db = opendatabase();
$time = $_POST['time'];
$name = strip_tags(mysqli_real_escape_string($db, $_POST['name']));
$msg = strip_tags(mysqli_real_escape_string($db, $_POST['msg']));
$sql = "INSERT INTO dbname (time, name, msg) VALUES('$time', '$name', '$msg')";
mysqli_query($db, $sql);
Als je $time ook even netjes meepakt, dan is het veilig.

En met welke reden wil je strip_tags() gebruiken voordat iets in de database staat?
Het lijkt mij zinvoller om dit op de output uit te voeren. Je wilt je invoer immers NOOIT om zeep helpen. Misschien is htmlspecialchars() nog wel beter, omdat je misschien liever HTML onschadelijk wilt maken.
- Ariën - op 20/08/2021 19:40:50

Als je $time ook even netjes meepakt, dan is het veilig.


Hartstikke mooi. Thanks. $time is geen user input, dat is gewoon een timestamp, dus dat is niet nodig denk ik?


En met welke reden wil je strip_tags() gebruiken voordat iets in de database staat?


Goeie vraag, is code van een paar jaar geleden en ik ben het vergeten. :) Blijkbaar tijdens testen destijds gedaan. Maar als het geen kwaad kan...
Doe dat dan liever op de uitvoer, waar je de gegevens toont. ;-)

[size=xsmall]Toevoeging op 20/08/2021 20:01:57:[/size]

Maar de vraag is: Wat gebeurde er met de hackpoging?
Het kan ook aan tal van andere zaken liggen.
Ook goeie vraag, ik weet het niet. Ik had ineens heel public_html leeg, alleen een index.html met Hacked By UNRBL en of ik wel binnen 24 uur 0.2 bitcoin wilde overmaken, anders zou mn site op het dark web geplaatst worden.
In een half uurtje had ik de boel weer aan de praat dus dat viel nog wel mee, alleen heb ik geen idee hoe hem dat gelukt is. Ik heb passwords veranderd natuurlijk. Ik was wel aan het experimenteren met dbeaver, sqylyog en heidisql, daar zou nog malware in kunnen hebben gezeten maar ook vrij onwaarschijnlijk. Dit is de enige plek waar een user data kan invoeren, behalve dan nog de laatste versie van smf forum.
Ik zou de logs een gaan checken. Grote kans dat je een upload-exploit hebt, en misschien is er nog een shell achtergebleven waarmee ze toegang kunnen krijgen.
Wil je eens kijken? Dit is de log van vlak voor de deface. Ik verdenk onderaan die 41.107.56.61, alleen zie geen bestand wat hem verder heeft kunnen helpen, ik heb geen wordpress etc allemaal, die dingen zette ik toen ik nog een thuisserver had in fail2ban, maar ik heb in die lijst geen bestanden gevonden behalve upload.php en dat was een testbestandje met niks erin.
http://jcremers.com/access_log_jcremers.com.txt
Lijkt mij enkel een exploit-zoek botje. Stuit enkel op 404's.

Zoek je scripts maar eens goed na voor de zekerheid. Heb je ook uploadscripts op je site?
Jean Cremers op 20/08/2021 19:58:46

[quote="- Ariën - op 20/08/2021 19:40:50"]
Als je $time ook even netjes meepakt, dan is het veilig.


Hartstikke mooi. Thanks. $time is geen user input, dat is gewoon een timestamp, dus dat is niet nodig denk ik?

[/quote]
Maar $time komt wel uit de $_POST, dus dan kan de user er mee "klooien" - een normale user zal dat niet doen, maar een hacker is geen normale user ...

Als het echt een timestamp is kun je ook gewoon time() gebruiken, of je moet bijvoorbeeld controleren of het formaat wel klopt (is het integer, of bijvoorbeeld formaat yyyy-mm-dd).
@Ariën Het smf forum laat uploaden van attachements en avatars toe, dat heb ik nu uitgezet.
@Rob, thanks, duidelijk, ik heb het aangepast.

Om public_html te wissen heb je ftp of cpanel toegang nodig toch? Dat krijg je toch niet met sql injectie? Hoe dan wel?
Tja, ik vermoed dat er ergens een upload-exploit is, of geweest is. Check daarom je logs.

Reageren