我有這個 url 用于測驗
http://localhost:8000/2.php?site=https://google.com<script></script>
然后我正在清理“網站”:
$site = filter_input(INPUT_GET, 'site', FILTER_SANITIZE_URL);
var_dump($site); // string(35) "https://google.com"
echo "<br>";
獲取絕對安全的網址。然后驗證它:
$siteValidation = filter_var($site, FILTER_VALIDATE_URL);
var_dump($siteValidation); // bool(false)
驗證失敗!為什么?
uj5u.com熱心網友回復:
正如您在此處所讀到的,FILTER_SANITIZE_URL 不會從字串中洗掉 < 或 >。這就是您看到列印的原因:
string(35) "https://google.com"
顯然,您看到的字串不是 35 個字符長(通過瀏覽器中的開發人員工具檢查,您會看到“腳本”部分仍然存在)。
這就是為什么下一行無法驗證的原因。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/480980.html
下一篇:返回列表