Hey
Ik ben een boek aan het lezen over secure coding in PHP. En ik wil even uittesten hoe effectief mysql_real_escape_string is tegen SQLi. Daarvoor wil ik even een klein 'testlabje' maken.
Deze code zou een SQL foutmelding moeten weergeven, maar dat doet het niet.
Het geeft alleen de error:
Notice: Trying to get property of non-object in C:\xampp\htdocs\PhpProject2\index.php on line 43
Als ik een '-icoontje invoeg, geen SQL fout denk ik.
Doet het dit omdat ik enkel weergeef als er meer als 0 resultaten/rijen zijn?
Maar, hoe kan ik nu een code schrijven die wel degelijk SQLi-kwetsbaar is?
Hier filter ik niks ofzo, dus zou het dat eigenlijk moeten zijn.
Bedankt!
Ik ben een boek aan het lezen over secure coding in PHP. En ik wil even uittesten hoe effectief mysql_real_escape_string is tegen SQLi. Daarvoor wil ik even een klein 'testlabje' maken.
Deze code zou een SQL foutmelding moeten weergeven, maar dat doet het niet.
code:
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
28
29
30
31
32
33
34
35
| <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <?php if (isset($_GET["btnSend"])) { $conn = new mysqli("localhost", "root", ""); if ($conn->connect_error) { echo "<br>[Message] Error occured while connecting."; } $string = $_GET["txtTest"]; $query = "USE testing"; $conn->query($query); $query = "SELECT * FROM table1 WHERE ID=$string"; $result = $conn->query($query); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "<br>ID: ".$row["ID"]."<br>texty: ".$row["texty"]; } } } ?> <form method="get"> <input type="text" name="txtTest" /> <input type="submit" name="btnSend" value="Submit" /> </form> </body> </html> |
Het geeft alleen de error:
Notice: Trying to get property of non-object in C:\xampp\htdocs\PhpProject2\index.php on line 43
Als ik een '-icoontje invoeg, geen SQL fout denk ik.
Doet het dit omdat ik enkel weergeef als er meer als 0 resultaten/rijen zijn?
Maar, hoe kan ik nu een code schrijven die wel degelijk SQLi-kwetsbaar is?
Hier filter ik niks ofzo, dus zou het dat eigenlijk moeten zijn.
Bedankt!