蓄意協議錯誤:蘭利法則
Langley's Law(蘭利法則)是與著名的伯斯塔爾法則(Postel’s Law)相反,伯斯塔爾法則是:
傳送時要保守;接收時要開放自由;
Be conservative in what you send, be liberal in what you accept.
HTML語法就是遵循伯斯塔爾法則,HTML能接受任何文字,哪怕不嚴格遵循HTML語法。在傳送文件的時候,我們會盡量保守一些,儘量採用最佳實踐,儘量確保文件格式良好。但從瀏覽器的角度說,它們必須以開放的姿態去接收任何文件。
伯斯塔爾法則的問題是帶來互用性差,將伯斯塔爾法則反過來就是蘭利法則:
傳送時要偶爾邪惡;接受時要保守。
Be occasionally evil in what you send, and conservative in what you accept.
比如Netflix使用chaos monkey故意搗亂其系統,以獲得系統的健壯性,下面是google推出Roughtime這個NTP授權時間校驗服務的引文:
一個健康的軟體生態系統不會出現透過指定軟體應該如何行為,然後才能設定其軟體實現做正確的事情,相反,我們計劃讓Roughtime伺服器針對一小部分請求返回無效,偽造的答案。這些虛假答案將包含錯誤的時間,而且也將是另一種方式無效,例如,一個簽名可能不正確,或訊息中的標籤可能是錯誤的順序。客戶端實現如果不進行所有必要的檢查,就不會發現他們得到胡說八道的答案,這對於他們變成一個黑帽交談(Blackhat talk)前暴露錯誤BUG已經足夠有效。
傳送時要保守;接收時要開放自由;
Be conservative in what you send, be liberal in what you accept.
HTML語法就是遵循伯斯塔爾法則,HTML能接受任何文字,哪怕不嚴格遵循HTML語法。在傳送文件的時候,我們會盡量保守一些,儘量採用最佳實踐,儘量確保文件格式良好。但從瀏覽器的角度說,它們必須以開放的姿態去接收任何文件。
伯斯塔爾法則的問題是帶來互用性差,將伯斯塔爾法則反過來就是蘭利法則:
傳送時要偶爾邪惡;接受時要保守。
Be occasionally evil in what you send, and conservative in what you accept.
比如Netflix使用chaos monkey故意搗亂其系統,以獲得系統的健壯性,下面是google推出Roughtime這個NTP授權時間校驗服務的引文:
一個健康的軟體生態系統不會出現透過指定軟體應該如何行為,然後才能設定其軟體實現做正確的事情,相反,我們計劃讓Roughtime伺服器針對一小部分請求返回無效,偽造的答案。這些虛假答案將包含錯誤的時間,而且也將是另一種方式無效,例如,一個簽名可能不正確,或訊息中的標籤可能是錯誤的順序。客戶端實現如果不進行所有必要的檢查,就不會發現他們得到胡說八道的答案,這對於他們變成一個黑帽交談(Blackhat talk)前暴露錯誤BUG已經足夠有效。
相關文章
- onvif soap 協議的錯誤程式碼協議
- ORACLE登入出現“ORA-12560:TNS:協議介面卡錯誤”錯誤修復Oracle協議
- Swift---協議和擴充套件、 錯誤處理、泛型Swift協議套件泛型
- 【譯】 WebSocket 協議第八章——錯誤處理(Error Handling)Web協議Error
- 英國議員:Facebook蓄意違反英國隱私法規
- 關於錯誤程式碼107(err_ssl_protocol_error)SSL 協議出錯的解決方案ProtocolError協議
- 一種錯誤的 if 寫法
- “遊”法可依 | 您的遊戲合作協議能否保證順利收到合作款項?遊戲協議
- 引入外部資源協議寫法協議
- Free自由協議系統開發(複利模式)協議模式
- 星瑞格與寶蘭德簽訂戰略合作協議協議
- Sqlserver Try Catch時Catch捕獲到錯誤則重試一次的寫法SQLServer
- navicat 建立事件報語法錯誤事件
- 除錯備忘錄-SWD協議解析除錯協議
- 錯誤推斷法、正交實驗設計法
- 亞馬遜aws文件語法錯誤亞馬遜
- 畢設之錯誤解決辦法
- Idea編譯錯誤解決辦法Idea編譯
- 簡單介紹Python 處理錯誤的原則Python
- Raft協議和ZAB協議Raft協議
- Gossip協議也叫Epidemic協議(流行病協議)Go協議IDE
- ubuntu下import matplotlib錯誤解決辦法UbuntuImport
- 錯誤: 找不到或無法載入主類
- pycharm改變語法錯誤的顏色PyCharm
- 印表機錯誤無法列印怎麼處理 印表機錯誤不能列印的方法
- Free自由協議系統dapp開發鎖倉複利模式協議APP模式
- 如何用利特爾法則調整執行緒池大小執行緒
- 如何使用利特爾法則調整執行緒池大小執行緒
- Debug: 樣式規則、元素選擇器 錯誤嵌用
- GB28181協議中20位編碼規則說明協議
- 頁面連結跳轉--指定協議,半協議,無協議協議
- 協議協議
- 電腦dns配置錯誤無法上網怎麼辦 dns配置錯誤不能上網DNS
- 直播app開發中容易犯的小錯誤,有則改之無則加勉APP
- 淺談WebSocket協議、WS協議和WSS協議原理及關係Web協議
- mysqldump error1066 錯誤的解決辦法MySqlError
- Git 錯誤:fatel: loose object ... is corrupt 解決辦法GitObject
- iOS路上遇到的錯誤及解決辦法iOS
- IPMI報jnlp錯誤,無法開啟java程式Java