-2
我想通过PHP从应用程序发送一些参数到数据库表。 我使用'GET'方法,并希望对变量设置一些限制和/或以某种方式使其安全,如下面的方法。 好的是他们只能包含希腊字母,数字和.-,符号。这个PHP方法安全吗?
这样做是否正确?
FORM:
<input type="text" name="a">
<input type=text" name="b">
网址:
http://the url.php?a=4,52&b=αβγδ.,-12345
我想要它做的,只是什么:
显示行其中id = x如果用户发送的现有ID和在PHP文件中定义的正确密钥。
安全的方法[编辑]:
$dbh=db_conn();
$vara = mb_convert_encoding($_GET["a"], 'UTF-8', 'ISO-8859-7');
$varb = mb_convert_encoding($_GET["b"], 'UTF-8', 'ISO-8859-7');
$sqlb = $dbh->prepare("SELECT * FROM table WHERE id = ? AND $vara='myknowkey';");
$sqlb->execute($varb);
你为什么要替换'$ _GET [ '一']'直冲SQL,而不是把它作为'$ _GET ['b']''的参数吗? – IMSoP
@IMSoP因为您无法使用预准备语句将条件放置在任意列上。 –
为什么这个问题标有准备好的语句? –