我有一个链接缩略图列表。每个缩略图都有一个变量的链接。如何安全地通过在URL中重写PHP的变量?
<a href="index.php?id=1"><img src="thumb1.jpg">
<a href="index.php?id=2"><img src="thumb2.jpg">
等等
现在,我已经更新站点使用URL重写。想法是,我有这样的链接
<a href="gallery/?id=1"><img src="thumb1.jpg">
<a href="gallery/?id=2"><img src="thumb2.jpg">
或东西simillar。
在着陆页上,我使用$id
来执行MySQL
查询,并使用该ID显示来自库的所有图片。
$pictures = mysql_query("SELECT * FROM t_gallery where id=$id",$db);
可以这样做,主要的是,我该如何防止通过身份证构成安全威胁?
干杯, 阿莱克斯
我怎样才能逃避它,你实际上可以让您的href网址,这样的吗?我不是非常familliar与此... 我不输入任何东西到数据库,只是读,但我,如你所说,害怕SQL注射。 其他的事情,当我使用gallery /?id = 2作为链接时,varibale不会传递给其他文件。我该怎么做 ? – Aleks
那么,没有看到你的重写规则(可能在.htaccess文件中),我不能帮助为什么param没有通过。我会再次推荐移动到PDO或mysqli并使用准备好的语句,在这种情况下不需要转义。但是如果你坚持不推荐使用的mysql函数,那么'mysql_real_escape_string'函数可能就是你正在寻找的东西。如果你期望$ id是一个数字,你总是可以用'if(is_numeric($ id))'来检查,如果是的话,你不需要转义它。 Sql注入适用于任何类型的查询,而不仅仅是插入。 – Jite
是的,它将始终是数字。 is_numeric函数addes,mysqli添加。 我只需要通过变量:)。重写作品(是的,在htaccess),所以当它找到特定的页面ID时,它会重写url 例如index.php?page_id = 300成为/ gallery-thumbs /和index.php?page_id = 301成为/ gallery /。现在,我只需要通过身份证表格/画廊大拇指/到/ gallery/ – Aleks