<?php
echo $_GET['id'];
?>
對我來說看起來不太安全..我們最好選擇顯示GET
元素嗎?
對所有的特殊字符有點像preg_replace
或者htmlspecialchars
?
<?php
echo $_GET['id'];
?>
對我來說看起來不太安全..我們最好選擇顯示GET
元素嗎?
對所有的特殊字符有點像preg_replace
或者htmlspecialchars
?
取決於你正在做的事$_GET['id'];
如果您想要將其插入數據庫,只需使用Prepared Statements
。 [足夠]
如果您只是想在您的HTML頁面上顯示它,請使用此代碼。
<?php
echo htmlentities($_GET['id']);
?>
<?php
echo htmlspecialchars($_GET['id']);
?>
這應該是足夠了:
htmlspecialchars($_GET['id'], ENT_QUOTES, "UTF-8");
如果是id
,我覺得應該是數字 - 然後echo intval($_GET['id']);
用htmlspecialchars()如果它是一個字符串,或轉換爲適當的類型,如果它是數字(INTVAL(),或(INT)等),例如:
$id = (int)$_GET['id'];
//or
echo (int)$_GET['id'];
'htmlspecialchars'對於數值也是足夠的。 –
這是足夠的,但如果它應該是一個int,那麼如果存在文本或其他垃圾,則轉換爲int將至少給出0。 – AbraCadaver
+1 ,但我不認爲'$ _GET ['id']'和「準備好的語句」需要大膽。只是我的意見,這就是全部:) –
'htmlentities()'不是必要的(而不是'htmlspecialchars()')。 – ComFreek