1
URL(GET)から変数を受け取って使用する必要があります。それはちょうど数字(0から400まで)で、その値を使ってクエリを実行します。このPHPコード(MySQLクエリを含む)は安全ですか?
私はmysqli_real_escape_string()を使用し、IF:if($ id> 0および$)を使用して、何か間違ったことをしないように(SQLインジェクションなど何か、私はセキュリティの専門家ではありません) id < 400)
あなたはそれが十分だと思いますか?コード全体は以下の通りです。ありがとう!
if($_SERVER["REQUEST_METHOD"] == "GET") {
// id enviado desde GET
$id = mysqli_real_escape_string($db,$_GET['id']); // $db es la conexión MySQL
if($id > 0 and $id < 400) {
$sql = "SELECT url FROM urls WHERE id = '$id'"; // Traemos la primera URL del id correspondiente
$result = mysqli_query($db,$sql);
echo "Cantidad de rows devueltas x la consulta SQL:" ;
echo mysqli_num_rows($result);
echo "<br>";
while ($row = mysqli_fetch_array($result)) {
echo $row[0];
echo "<br>";
}
}
}
を使用して、それがより安全に保存されますバインド変数を使用した準備済みの文 - [ここにあなたのコードでの問題のデモンストレーション](https://3v4l.org/c15DS) –
IDの場合、エスケープする必要はありません。代わりにis_numeric()を使用して確認してください。 –
**いいえ**これは**安全ではありません**。 *コードとして実行する前にユーザー入力を変更する*は、最初にコードとして実行しない*より安全ではありません。いくつかの例:http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string * code *の代わりに* data *としてユーザー入力を処理する方法は、SQLから保護する方法です注入。クエリパラメータを使用します。 – David