0
我寫了一個簡單的聯繫表單腳本,並試圖使用W3School上描述的方法向其添加XSS驗證。不幸的是,它不起作用,就好像我在其中一個字段中輸入「<」然後提交,當我通過電子郵件收到它時,它會顯示爲「<」。PHP XSS驗證不起作用
任何人都可以建議我做錯了什麼?
數據採集部分
$name = $co = $email = $tel = $message = "";
if ($_SERVER["REQUEST_METHOD"] == "POST"){
$name = test_input($_REQUEST['name']);
$co = test_input($_REQUEST['company']);
$email = test_input($_REQUEST['email']);
$tel = test_input($_REQUEST['tel']);
$message = test_input($_REQUEST['message']);
}
數據測試功能
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
非常感謝
感謝您的建議。我將Outlook設置爲以純文本格式閱讀郵件,但仍顯示「<」符號。 – Tessa
我在您提供的代碼中看不到任何問題。在發送電子郵件之前可能會發生一些重新轉換?你最好使用'$ _POST'而不是'$ _REQUEST'。 – dev0
謝謝,我試過$ _POST和$ _REQUEST,但它有相同的結果,但我認爲你是對的。我認爲發生了什麼事情(從Outlook收到的消息中)是,它將檢索郵件爲HTML,然後將其轉換爲純文本,我想可以導致「<」無論如何都會被轉換。 – Tessa