我發現w3c 驗證器對我測驗當前頁面的最終標記非常有用
我的每個頁面都有一個鏈接,如下所示:
https://validator.w3.org/nu/?showsource=yes&doc=https://example.com/index.php
它有效,但問題是 - 如果我有這樣的事情:
<?php
if(!isset($_SESSION['admin'])){header('location: login.php');}
?>
并且最終的測驗標記實際上是login.phpand not的標記index.php- 無論會話是否設定 - 或不
有沒有辦法避免這種重定向?
似乎有一個POST選項而不是,GET我希望它可以在沒有重定向的情況下作業,但我無法理解如何實作它
請幫忙
uj5u.com熱心網友回復:
永遠不會設定會話,因為驗證器不會登錄到您的站點。
驗證 HTML的簡單而安全的方法是:
- 查看 > 來源
- 復制/粘貼(可能通過文本編輯器洗掉任何私人資料)到驗證器
更復雜的方法是撰寫一種繞過會話檢查邏輯并始終回傳管理頁面的方法。(例如,查詢字串與服務器端配置檢查相結合)。然后給驗證器提供一個觸發繞過邏輯的 URL。并且只在沒有生產資料的臨時服務器上打開該代碼(通過上述配置檢查)(否則你會引入一個大的安全漏洞)。
另一種類似的方法是根據請求來自的 IP 地址進行繞過,然后允許訪問驗證器的 IP 地址。由于您不希望攻擊者能夠通過將他們的 URL 提交給驗證器來讀取您的管理頁面,因此您應該只對安裝在您 LAN 上的驗證器實體的 IP 地址執行此操作(并且限制非管理員具有訪問您的 LAN 無法使用它)。
uj5u.com熱心網友回復:
如果您有一個Location:標頭,帶有適當的重定向狀態代碼,那么理想情況下您根本不會發送任何 HTML。它不會被看到并且浪費帶寬。事實上,您會發現瀏覽器會在嘗試渲染 HTML 之前遵循重定向。
因此,應該沒有什么可驗證的!
另請注意,瀏覽器的開發人員工具可以為您發出 HTML 驗證警告。因此,如果您需要對登錄頁面進行測驗,您可以直接在瀏覽器中進行檢查,而無需前往 W3C 驗證器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/393750.html
上一篇:ReactJs自定義表單驗證不起作用-Next.Js
下一篇:使用模式驗證客戶端資料輸入
