-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因爲您無法使用預準備語句將條件放置在任意列上。 –
爲什麼這個問題標有準備好的語句? –