$id = (int) $_POST['id']
$content = filter_input(INPUT_POST, 'post_content', FILTER_SANITIZE_STRING);
上述內容,使我的$內容串保護,當我把它上傳到數據庫:
$conn->new->query("UPDATE `posts` SET `content` = " . $conn->escape_string($content) . " where `id` = {$id};");
但同時,是不會刪除一些特殊字符如標籤,例如我不能在我的帖子中使用<
,因爲它會被刪除。
我該如何修改它,以獲得足夠的安全性並防止我的代碼被黑客攻擊?
'FILTER_SANITIZE_STRING'是'strip_tags'和'htmlspecialchars'的組合。你必須決定你想要什麼/保持什麼。如果標籤被允許,那麼使用一個像HTMLPurifier這樣的真正的過濾器。 – mario