-1

私のデータベースは最近、SQL インジェクション攻撃に見舞われました。主な理由は、私がプログラミングに比較的慣れておらず、そのようなことを知らなかったためです。それらを防ぐ方法を学ぼうとしていますが、このスクリプトの方法がわかりません。ただし、実装に成功した別のタイプのスクリプトがあります。このスクリプトを使用して SQL インジェクション攻撃を防ぐにはどうすればよいですか?

<?php

$autor = $_GET["multi"];
$autop = $_GET["multis"];

$sql = "UPDATE autoj SET autob = '$autop' WHERE autoq = '$autor'";

$hd = "something";
$dd =  $_GET['something'];
$ud = "something";
$pd = "something";

$mysqli = new mysqli($hd, $ud, $pd, $dd); 
if (mysqli_connect_errno()) {
   printf("Connect failed: %s\n", mysqli_connect_error());
   exit();
}

$result = $mysqli->query($sql);
if ($result) {
....
4

3 に答える 3

1

このスクリプトを使用して SQL インジェクション攻撃を防ぐにはどうすればよいですか?

と全く同じ方法

于 2013-05-04T16:00:46.037 に答える
0

これを試して:

$hd = "something";
$dd = "PUT SOMETHING HERE";
$ud = "something";
$pd = "something";

$mysqli = new mysqli($hd, $ud, $pd, $dd); 
if (mysqli_connect_errno()) {
   printf("Connect failed: %s\n", mysqli_connect_error());
   exit();
}

$autor = $_GET["multi"];
$autop = $_GET["multis"];
$autor = $mysqli->real_escape_string($autor);
$autop = $mysqli->real_escape_string($autop);

$sql = "UPDATE autoj SET autob = '$autop' WHERE autoq = '$autor'";

また、2 行目で、$_GET['something'] を使用してデータベースを選択していることがわかります。しないでください。

于 2013-05-04T16:02:00.493 に答える
-1

mysqli_real_escape_string を使用 http://php.net/manual/en/mysqli.real-escape-string.php

于 2013-05-04T16:02:18.827 に答える