>[info]相對路徑覆蓋(RPO)漏洞
RPO(Relative Path Overwrite)相對路徑覆蓋,是一種新型攻擊技術,最早由Gareth Heyes在其發表的文章中提出。主要是利用瀏覽器的一些特性和部分服
務端的配置差異導致的漏洞,通過一些技巧,我們可以通過相對路徑來引入其他的資源文件,以至于達成我們想要的目的。 就目前來看此攻擊方法依賴于瀏覽
器和網絡服務器的反應,基于服務器的Web緩存技術和配置差異,以及服務器和客戶端瀏覽器的解析差異,利用前端代碼中加載的css/js的相對路徑來加載其他
文件,最終瀏覽器將服務器返回的不是css/js的文件當做css/js來解析,從而導致XSS,信息泄露等漏洞產生。
**解決方案:**
因為觸發這個漏洞有兩個基本的前提: (1)Apache 配置錯誤導致AllowEncodedSlashes這個選項開啟(對Apache來說默認情況下 AllowEncodedSlashes
這個選項是關閉的),或者nginx服務器。 (2)存在相對路徑的js或者css的引用。 所以首先需要開發人員注意代碼書寫規范,其次在頁面中避免直接使用相對
路徑進行靜態文件的加載。