我正在構建一個網站,該網站使用通過URL傳遞的信息從數據庫表中挑選信息,但引起了我的注意,這樣做可能會導致SQL注入。正如我以爲這只是一個問題,你是插入信息到數據庫中,我有點困惑,你應該保護你的代碼的時間,方式和位置。SQL注入保護 - 何時何地
目前,我有一個網址,它看起來像:
www.website.com/article.php?title=title&id=1
這是htaccess的縮短www.website.com/article/title/1
在我article.php頁我那麼有:
<?php
if(isset($_GET["id"])){$url_id = $_GET["id"];}else{
header("Location: $site_url");
exit();
};
?>
<?php
if(isset($_GET["title"])){$url_title = $_GET["title"];}else{
header("Location: $site_url");
exit();
};
?>
<?php
$article_sql = "SELECT ...
我目前使用mysqli_real_escape_string
來防止SQL注入威脅,但我不確定在這裏使用它。我猜測加入...
...
<?php
if(isset($_GET["title"])){$url_title = $_GET["title"];}else{
header("Location: $site_url");
exit();
};
?>
<?php
$url_id = mysqli_real_escape_string($url_id); // ADDED
$url_title = mysqli_real_escape_string($url_title); // ADDED
?>
<?php
$article_sql = "SELECT
...
應該這樣做,但這是正確的嗎?
您需要的所有內容都在此主題中。 –
僅供參考,mysqli_real_escape_string與SQL注入完全無關。 –
@YourCommonSense那麼爲什麼我在很多場合被告知它是注射威脅的解決方案? –