首先是解析XML漏洞。如果您的應用程序加載和解析XML文件,那麽您可能正在使用XML標準庫模塊。有壹些針對XML的常見攻擊。大多數是DoS風格(旨在破壞系統而不是竊取數據)。這些攻擊很常見,尤其是在解析外部(即不受信任的)XML文件時。壹種這樣的攻擊是?十億笑?,因為加載的文件包含許多(十億)?笑?。您可以加載XML實體文件,當XML解析器嘗試將此XML文件加載到內存中時,它將消耗許多GB的內存。
其次是SQL註入漏洞。SQL註入漏洞的原因是用戶輸入直接拼接到SQL查詢語句中。在pythonweb應用程序中,orm庫壹般用於數據庫相關的操作。例如,Flask和Tornado經常使用SQLAlchemy,而Django有自己的orm引擎。.但是如果不使用ORM,直接拼接SQL語句,就有SQL註入的風險。
再者是輸入函數漏洞。在Python2的大量內置特性中,輸入是壹場徹底的安全災難。壹旦調用它,從標準輸入讀取的任何內容都會立即解析為Python代碼,顯然,除非腳本的標準輸入中的數據完全可信,否則決不能使用輸入函數。Python2文檔建議將rawinput作為安全的替代方案。在Python3中,input函數等價於rawinput,壹勞永逸地解決了這個陷阱。
要知道SSTI是ServerSideTemplateInjection,是Web開發中使用的模板引擎。模板引擎可以將用戶界面和業務數據分離,邏輯代碼和業務代碼也可以相應分離,代碼復用變得簡單,開發效率也提高了。模板在服務器端使用,數據由模板引擎渲染,然後傳遞給用戶,可以為特定用戶/特定參數生成對應的頁面。我們可以對比壹下百度搜索,搜索不同詞條得到的結果頁面是不壹樣的,但是頁面的邊框基本是壹樣的。