noscript ,系代碼編程元素,用來定義在腳本未被執行時的替代內容(文本)。
定義,版本,特點,評論,
定義
傳統定義
此標籤可被用於可識別 <script> 標籤但無法支持其中的腳本的瀏覽器。
此段代碼意思為如果瀏覽器不支持script的代碼,則會顯示嵌入的那個頁面的內容
定義和用法
noscript 元素用來定義在腳本未被執行時的替代內容(文本)。
此標籤可被用於可識別 <script> 標籤但無法支持其中的腳本的瀏覽器。
NONE
HTML 4.01 與 HTML5之間的差異
在 HTML 4.01 中,<noscript> 標籤只允許插入到 <body> 標籤中。
在 HTML5 中,<noscript> 標籤可以插入到 <head> 和 <body> 標籤中。
全局屬性
class、data-*、dir、draggable、id、lang、style、title、translate、dropzone、hidden、contextmenu、spellcheck
版本
軟體版本:V2.5.8
軟體大小: 0.51 MB
軟體語言: 英文軟體
整理日期: 2012-10-21
授權方式: 免費軟體
軟體分類:國外軟體
運行環境:Win2003,WinXP,Win2000,Win9X
提示和注釋
注釋:如果瀏覽器支持腳本,那么它不會顯示出 noscript 元素中的文本。
注釋:無法識別 <script> 標籤的瀏覽器會把標籤的內容顯示到頁面上。為了避免瀏覽器這樣做,您應當在注釋標籤中隱藏腳本。老式的(無法識別 <script> 標籤的)瀏覽器會忽略注釋,這樣就不會把標籤的內容寫到頁面上,而新式的瀏覽器則懂得執行這些腳本,即使它們被包圍在注釋標籤中!
例子
JavaScript
<body>
...
...
<script type="text/javascript">
<!--
document.write("Hello World!")
//-->
</script>
<noscript>Your browser does not support JavaScript!</noscript>
...
...
</body>
VBScript
<body>
...
...
<script type="text/vbscript">
<!--
document.write("Hello World!")
'-->
</script>
<noscript>Your browser does not support VBScript!</noscript>
...
...
</body>
標準屬性
id, class, title, style, dir, lang, xml:lang
NoScript
是一個免費和開源的,為Mozilla Firefox和Mozilla Application Suite網頁瀏覽器(諸如Flock、SeaMonkey等)所開發的擴展(Add-ons)。NoScript允許JavaScript, Java, Flash, Sliverlight以及其它外掛程式和腳本內容基於白名單被選擇性的執行。
特點
安全和使用方法
在安裝之後, JavaScript, Java, Flash, Sliverlight和其它可執行內容都會被Firefox默認阻止。用戶可以隨後允許這些內容。NoScript會在Firefox中占據一個工具列圖示或是一個狀態欄圖示,並顯示正在瀏覽的頁面上每個站點的內容被阻止或允許的情況,同時也提供允許之前被阻止的內容或阻止之前被允許的內容的選項。
站點匹配和白名單
對於每個頁面,特定的地址,特定的域名或是根域名都是可以被允許的,允許後它的內容就會被執行。同時,允許一個域名之後,它的所有子域名都會被默認允許而且與協定無關(例如http和https)。而允許一個地址之後,它的所有子目錄都會被允許 ,此時它的根域名和以及其它二級域名都不會被允許。
黑名單
頁面也可以在NoScript中被列入黑名單。把一個頁面列入黑名單不僅會阻止執行腳本內容,同時還會去除允許執行這些內容的選項。
反XSS防護
2007年4月11日,NoScript 1.1.4.7版公開發布,新增了一個客戶端級的保護,針對類型0和類型1的XSS攻擊。一旦一個頁面試圖將HTML或是JavaScript代碼插入另一個頁面,NoScript就會過濾掉有害請求,抵消這些危害。
強制HTTPS轉換
獎項
NoScript被PC World雜誌評為2006年百大最佳產品之一。
評論
默認阻止一切
NoScript的默認行為是阻止所有不在白名單中的腳本。這可能使大量依賴於JavaScript技術,例如AJAX的頁面無法正常工作。不熟悉的用戶也許會覺得相比起增加的安全保護,這樣的行為威力太大,沒必要甚至令人厭煩。但同時NoScript也支持一個可選的黑名單模式:用戶可以選擇全局啟用JavaScript然後禁止他們不信任的站點。即便如此配置,NoScript仍然能在很大程度上增強安全性,由於XSS, CSRF和Clickjacking的防護仍然可以起作用。
內置的白名單
截至2009年5月, NoScript的白名單默認包含了擴展作者的部分域名,一些Google的域名(包括一個必要的用於顯示Google Adsense廣告的域名),雅虎以及微軟,由於這些使用了AJAX的Web郵件服務可能是某些用戶熟悉的使用郵件方式,如果不這樣做,這些用戶就會在安裝NoScript之後無意地把他們自己鎖住。這個白名單可以在設定對話框中修改,如同擴展官網的解釋。
和Adblock Plus的爭端
2009年5月1日,Wladimir Palant, 另一個知名Firefox擴展Adblock Plus的作者,宣布一周之前NoScript 1.9.2版開始妨礙Adblock Plus的正常工作。NoScript會在未經Adblock Plus和用戶允許的情況下解析並顯示贊助商頁面。Palant說NoScript使用了代碼混淆來逃避十六進制代碼層面對這個修改的檢測。幾乎同時,由於此次事件Mozilla決定修改社區準則。4月30日,NoScript升級到1.9.2.3,把傳說中的代碼混淆改為了一個用戶可見的特性,即NoScript在Adblock Plus的過濾規則中將自己的網站設定為了白名單。Wladimir Palant指出這個過濾規則集即便被用戶刪除也會在每次啟動的時候自動添加回去,不過這看起來似乎只是個無意的Bug,因為白名單同時也可以被永久禁止或是如NoScript FAQ所說,被用戶自己的過濾規則覆蓋。幾小時之後,2009年5月2日,自動更新的NoScript 1.9.2.6版徹底移除了針對Adblock Plus設定的白名單,並在發行記錄中對沒有在用戶事先允許的情況下修改Adblock Plus功能的行為作出公開道歉。2009年5月4日,在部落格上一篇長文中,NoScript的作者Giorgio Maone以個人身份對最初含糊的接觸表達了歉意,認識到這是破壞了信任的關係並表示了他的悔過之心。他同時解釋NoScript添加的Adblock Plus白名單意圖是對EasyList反常性攻擊做出的對抗,這些攻擊是針對Manoe的網站,並幾乎破壞了頁面所有的動態功能,甚至是安裝NoScript軟體包的連結。
NoScript網站和Ghostery擴展的衝突
2009年5月1日以及2009年5月3日在討論NoScript對Adblock Plus的修改時,有人在NoScript支持論壇中指出NoScript官網上有一個CSS規則不停讓Ghostery這個Mozilla擴展彈出提示,表示網頁上有奇怪而隱蔽的"bug"。Ghostery也會提示用戶Manoe網站上Google Adsense的使用。Manoe在回應中宣稱他的CSS只是設計網頁本身,Ghostery的提示是由於其自身的技術問題,同時這些提示看起來很糟糕而且妨礙了網頁內容的真實效果。在之後的聲明中Manoe又特別批評這些提示擋住了了捐款按鈕和使用許可的顯示並且表示他的CSS沒有阻止Ghostery的正常工作。
大多數人則認為Manoe的CSS檔案足夠讓Ghostery正確判斷出包含的統計代碼。有人指出Ghostery在其原始狀態的提示並沒有擋住Manoe的捐款按鈕,並在幾秒鐘之後就消失了。另外,用戶們指出Manoe的一行樣式使得Ghostery無法提供一個網頁bug的信息,並認為總體上來說這是Manoe自己內容的問題。但Manoe仍堅稱Ghostery顯示信息的方式不合適和過度敏感而導致兩個擴展難以共存。
這件事的討論擴展到了第三方站點,有些人謊稱是干擾了Ghostery工作的是NoScript擴展而不是Manoe的站點。在對此事火上澆油的網站中Ghostery的作者David Cancel隨後修正了自己部落格上原先的冒昧言論。
2009年5月6日,在此事的激烈討論平息之後,Maone公開表示他改變了自己對此事的觀點,為此他修改了自己站點的CSS。Ghostery的提示框不再被隱藏而是向頁面中部輕微移動了一些,以免擋住捐款按鈕或是許可信息。