WEB安全性測試


SQL注入

 
所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。具體來說,它是利用現有應用程序,將(惡意)的SQL命令注入到后台數據庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。[1]  比如先前的很多影視網站泄露VIP會員密碼大多就是通過WEB表單遞交查詢字符暴出的,這類表單特別容易受到SQL注入式攻擊
 
 
XSS攻擊
 

   XSS又稱CSS,全稱Cross SiteScript,跨站腳本攻擊,是Web程序中常見的漏洞,XSS屬於被動式且用於客戶端的攻擊方式,所以容易被忽略其危害性。其原理是攻擊者向有 XSS漏洞的網站中輸入(傳入)惡意的HTML代碼,當其它用戶瀏覽該網站時,這段HTML代碼會自動執行,從而達到攻擊的目的。如,盜取用戶 Cookie、破壞頁面結構、重定向到其它網站等。
 
 
WEB日志
 

 
如何查看自己的服務器的日記?
自己有服務器的先打開“Internet 信息服務”,選擇你的網站屬性,下面有“啟用日志記錄”,一般有三個選項:W3C擴展日志文件格式、Microsoft IIS 日志文件格式、NCSA公用日志文件格式,默認是:W3C擴展日志文件格式,選擇右邊的屬性,下面有日志文件名:(例 如:W3SCC1\ncyymmdd.log),日志存放目錄一般是:C:\WINDOWS\system32\LogFiles,如果你要打開日志文件 夾,那地址就是C:\WINDOWS\system32\LogFiles\W3SCC1。 如果用虛擬主機的可以到服務器商的后台選擇日志保存后用 FTP去下載,一般都放在log文件夾內。
 
 
接口測試
 

接口測試是測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。
 
接口測試大體分為兩類: 模塊接口測試和web接口測試
 
模塊接口測試是單元測試的基礎。它主要測試模塊的調用與返回。

1、檢查接口返回的數據是否與預期結果一致。

2、檢查接口的容錯性,假如傳遞數據的類型錯誤時是否可以處理。例如上面的例子是支持整數,傳遞的是小數或字符串呢?
 
3、接口參數的邊界值。例如,傳遞的參數足夠大或為負數時,接口是否可以正常處理。
 
4、接口的性能,接口處理數據的時間也是測試的一個方法。牽扯到內部就是算法與代碼的優化。
 
5、接口的安全性,如果是外部接口的話,這點尤為重要。
 

web接口測試又可分為兩類:服務器接口測試和外部接口測試。

服務器接口測試:是測試瀏覽器與服務器的接口。這個很容易理解,我們知道web開發一般分前端和后端,前端 開發人員用html/css/javascript等技術。后端開發人用php/java/python/ruby等各種語言。用戶輸入的數據是輸入到的 前端頁面上,怎樣把這些數據傳遞的后台的呢?通過http協議的get與post請求來實現前后端的數據傳遞。這也可認為是接口測試,調用的登錄接口還是 查詢接口,傳參的是用戶密碼還是搜索關鍵字。
 
外部接口測試:這個很典型的例子就是第三方登錄,比如你做的新系統免於新用戶重新注冊的麻煩會提供第三方登錄,那用戶在登錄的時候調用的就是第三方登錄的接口,由第三方驗證用戶名和密碼並且返回給當前系統。
 

對於web接口測試來說有哪些測試要點:

1、請求是否正確,默認請求成功是200,如果請求錯誤也能返回404、500等。
2、檢查返回數據的正確性與格式;json是一種非常創建的格式。
3、接口的安全性,一般web都不會暴露在網上任意被調用,需要做一些限制,比如鑒權或認證。
4、接口的性能,web接口同樣注重性能,這直接影響用戶的使用體驗。如果我搜索一個關鍵字半天結果都沒返回,果斷棄用。
 
 

1.定義介紹

(1).XML定義
擴展標記語言 (Extensible Markup Language, XML) ,用於標記電子文件使其具有結構性的標記語言,可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。 XML使用DTD(document type definition)文檔類型定義來組織數據;格式統一,跨平台和語言,早已成為業界公認的標准。
XML是標准通用標記語言 (SGML) 的子集,非常適合 Web 傳輸。XML 提供統一的方法來描述和交換獨立於應用程序或供應商的結構化數據。

(2).JSON定義
JSON(JavaScript Object Notation)一種輕量級的數據交換格式,具有良好的可讀和便於快速編寫的特性。可在不同平台之間進行數據交換。JSON采用兼容性很高的、完全獨立於語言文本格式,同時也具備類似於C語言的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)體系的行為。這些特性使JSON成為理想的數據交換語言。
JSON基於JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一個子集。

2.XML和JSON優缺點

(1).XML的優缺點
<1>.XML的優點
  A.格式統一,符合標准;
  B.容易與其他系統進行遠程交互,數據共享比較方便。
<2>.XML的缺點
  A.XML文件龐大,文件格式復雜,傳輸占帶寬;
  B.服務器端和客戶端都需要花費大量代碼來解析XML,導致服務器端和客戶端代碼變得異常復雜且不易維護;
  C.客戶端不同瀏覽器之間解析XML的方式不一致,需要重復編寫很多代碼;
  D.服務器端和客戶端解析XML花費較多的資源和時間。

(2).JSON的優缺點
<1>.JSON的優點:
  A.數據格式比較簡單,易於讀寫,格式都是壓縮的,占用帶寬小;
  B.易於解析,客戶端JavaScript可以簡單的通過eval()進行JSON數據的讀取;
  C.支持多種語言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服務器端語言,便於服務器端的解析;
  D.在PHP世界,已經有PHP-JSON和JSON-PHP出現了,偏於PHP序列化后的程序直接調用,PHP服務器端的對象、數組等能直接生成JSON格式,便於客戶端的訪問提取;
  E.因為JSON格式能直接為服務器端代碼使用,大大簡化了服務器端和客戶端的代碼開發量,且完成任務不變,並且易於維護。
<2>.JSON的缺點
  A.沒有XML格式這么推廣的深入人心和喜用廣泛,沒有XML那么通用性;
  B.JSON格式目前在Web Service中推廣還屬於初級階段。

3.XML和JSON的優缺點對比

(1).可讀性方面。
JSON和XML的數據可讀性基本相同,JSON和XML的可讀性可謂不相上下,一邊是建議的語法,一邊是規范的標簽形式,XML可讀性較好些。
(2).可擴展性方面。
XML天生有很好的擴展性,JSON當然也有,沒有什么是XML能擴展,JSON不能的。
(3).編碼難度方面。
XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的編碼明顯比XML容易許多,即使不借助工具也能寫出JSON的代碼,可是要寫好XML就不太容易了。
(4).解碼難度方面。
XML的解析得考慮子節點父節點,讓人頭昏眼花,而JSON的解析難度幾乎為0。這一點XML輸的真是沒話說。
(5).流行度方面。
XML已經被業界廣泛的使用,而JSON才剛剛開始,但是在Ajax這個特定的領域,未來的發展一定是XML讓位於JSON。到時Ajax應該變成Ajaj(Asynchronous Javascript and JSON)了。
(6).解析手段方面。
JSON和XML同樣擁有豐富的解析手段。
(7).數據體積方面。
JSON相對於XML來講,數據的體積小,傳遞的速度更快些。
(8).數據交互方面。
JSON與JavaScript的交互更加方便,更容易解析處理,更好的數據交互。
(9).數據描述方面。
JSON對數據的描述性比XML較差。
(10).傳輸速度方面。
JSON的速度要遠遠快於XML。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM