一、介紹ESAPI
ESAPI (OWASP企業安全應用程序接口)是一個免費、開源的、網頁應用程序安全控件庫,它使程序員能夠更容易寫出更低風險的程序。ESAPI接口庫被設計來使程序員能夠更容易的在現有的程序中引入安全因素。ESAPI庫也可以成爲作爲新程序開發的基礎。
二、所需要的軟件
我下載後的文件放置在 【E:\軟件源文件 】中
三、使用方法
1.將下載好的文件解壓。解壓的文件夾在【E:\軟件源文件】
2.將文件下列文件加入到
1)E:\軟件源文件\esapi-2.1.0-dist\esapi-2.1.0.jar
2) E:\軟件源文件\esapi-2.1.0-dist\libs
如下所示,不要告訴我你不會加入路徑哦~
3. 新建源文件EsapiTest.java,代碼如下所示
package qwert; //我自己建的包
import org.owasp.esapi.ESAPI;
public class EsapiTest{
public static void main(String[] args){
String safe = ESAPI.encoder().encodeForHTML("<script>alert('xss')</script>");
System.out.println(safe);
}
<span style="font-family:KaiTi_GB2312;">}
</span>
運行代碼:
分析出現的問題:無法找到目錄文件。
解決方法:將【E:\軟件源文件\esapi-2.1.0-dist\src\test\resources\esapi】下的ESAPI.properties和validation.properties複製到【C:\Users\wangwr】目錄下新建esapi文件夾中。
設置完後,繼續運行,此時不會出現無法找到目錄文件的錯誤,而是出現下列錯誤。
該錯誤讓我花了大半天的時間解決,找了很多的英文資料,最終的原因是apache.log4j文件的問題。
上述原因描述的結果是 java.lang.ClassNotFoundException: org.apache.log4j.spi.LoggerFactory,即,找不到log4j文件的原因,但在libs中確實有該jar文件。
解決方法:找了好久的資料,花了大半天的時間,最後在英文論壇上找到有人用的是log4j-1.2.17,於是用嘗試的方式去在官網上下載了log4j-1.2.17。
解壓後,將其中的【E:\軟件源文件\log4j-1.2.17\apache-log4j-1.2.17】的log4j-1.2.17.jar文件加入到path中,然後在運行
結果就出來了。如下所示:
四、總結
經過一番折騰,簡單的ESAPI實現xss終於搞定了,雖然整體來說不難,但是對於一個初學者來說,並且在已有資料很少且不詳細的情況下,要完成還是折騰了好久。希望把自己的整個過程寫下來,方便大家學習。
ps:如果有需要軟件的話,可以給我留言~