我正在构建一个网站,该网站使用通过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那么为什么我在很多场合被告知它是注射威胁的解决方案? –