diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:43:23 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:43:23 -0500 |
commit | 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (patch) | |
tree | a9ef8ac1e1b8fe4207b6d64d3841bfb8990b6fd0 /files/zh-tw/web/security | |
parent | 074785cea106179cb3305637055ab0a009ca74f2 (diff) | |
download | translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.gz translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.bz2 translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.zip |
initial commit
Diffstat (limited to 'files/zh-tw/web/security')
6 files changed, 334 insertions, 0 deletions
diff --git a/files/zh-tw/web/security/index.html b/files/zh-tw/web/security/index.html new file mode 100644 index 0000000000..1a916b268b --- /dev/null +++ b/files/zh-tw/web/security/index.html @@ -0,0 +1,16 @@ +--- +title: Web 安全 +slug: Web/Security +tags: + - Landing + - Security + - Web +translation_of: Web/Security +--- +<div class="summary"> +<p>確保您的網站或開放式 Web 應用程式的安全相當重要。即使是程式中的小臭蟲也可能導致私敏資訊洩露,而有心人士無時無刻都在嘗試竊取資料。<span class="seoSummary">這裡所列出的網路安全方面的文章提供了相關資訊,協助您保護您的網站以及程式防範網路攻擊和資料竊取。</span></p> +</div> + +<p>{{LandingPageListSubpages}}</p> + +<p>{{QuickLinksWithSubpages}}</p> diff --git a/files/zh-tw/web/security/insecure_passwords/index.html b/files/zh-tw/web/security/insecure_passwords/index.html new file mode 100644 index 0000000000..d9c6a42d52 --- /dev/null +++ b/files/zh-tw/web/security/insecure_passwords/index.html @@ -0,0 +1,76 @@ +--- +title: 不安全的密碼 +slug: Web/Security/Insecure_passwords +tags: + - 安全性 + - 密碼 + - 網頁 + - 風險 +translation_of: Web/Security/Insecure_passwords +--- +<p class="summary">提供 HTTP 的登入表單非常危險,因為目前有很多已知的用戶密碼擷取手法。竊聽者可以透過側錄該網路或修改傳輸頁面進行大量的惡意攻擊,並直接竊取用戶憑證或密碼。<span class="seoSummary">本頁將詳細說明 Firefox 用以警示用戶與開發者有關不安全的密碼及密碼竊取風險的安全機制。</span></p> + +<p><a href="https://mdn.mozillademos.org/files/5951/insecure_page2_with_arrows_cropped.jpeg" title="https://en.wikipedia.org/wiki/HTTP_Secure">HTTPS</a> 通訊協定,旨在保護用戶的資料於傳輸時不會遭到竊聽與竄改,並保護其機密性與原始完整性。負責處理用戶資料的網站應使用 HTTPS 保護其用戶不受惡意駭客攻擊。如果沒有使用 HTTPS,竊取諸如登入憑證之類的用戶資訊是小事一樁。著名的 <a href="https://codebutler.github.io/firesheep/" title="http://codebutler.com/firesheep/">Firesheep</a> 附加套件曾示範過此種攻擊方式。</p> + +<p>要處理這個問題,請安裝並設定網站伺服器的 SSL/TLS 憑證。目前有許多免費與付費的憑證供應商。如果是使用雲端,雲端服務商可能提供了啟動 HTTPS 的方法。</p> + +<h2 id="Firefox_密碼安全性指標">Firefox 密碼安全性指標</h2> + +<p>為提醒上述風險,Firefox 實做了許多警告機制:</p> + +<ol> + <li> + <p>Firefox 51 以後會在網址列的左方顯示一個紅色劃叉的鎖頭警告標示,如下圖所示。</p> + + <p style="text-align: center;"><img alt="鎖頭標示" src="https://support.cdn.mozilla.net/media/uploads/gallery/images/2015-11-17-12-13-18-2faa61.png" style="height: 25px; width: 25px;"></p> + </li> + <li> + <p>Firefox 52 以後會在任何不安全表單的 URL 欄位與密碼區域清楚呈現警告:</p> + + <p style="text-align: center;"><img alt="警告" src="https://support.cdn.mozilla.net/media/uploads/gallery/images/2017-04-21-23-52-53-ba340d.png" style="height: 133px; width: 328px;"></p> + </li> + <li> + <p>Firefox 52 以後還會禁止在不安全表單自動填入密碼。用戶依舊可以藉由下拉列表,填入已存登錄的資訊。</p> + </li> + <li> + <p>不安全表單的警告,也能從所有 Firefox 發行的開發者主控台之安全窗格找到。詳請參見下節敘述。</p> + </li> +</ol> + +<h2 id="網頁主控台訊息"><strong>網頁主控台訊息</strong></h2> + +<p>本區塊敘述為了應對不安全的密碼,於 Firefox 開發者工具中顯示在網頁主控台的安全性訊息。</p> + +<h3 id="透過_HTTP_提供登入表單">透過 HTTP 提供登入表單</h3> + +<p>即使表單是傳送到 HTTPS 網址,用戶的登入表單仍未受保護,因為攻擊者可以修改用戶接收到的頁面。例如,攻擊者可插入鍵盤側錄腳本,導致用戶輸入的資料外洩,或變更表單目的地為攻擊者控制的伺服器。網路主控台的安全面板會警告開發者及用戶,並標示這項安全性問題。</p> + +<p style="text-align: center;"><img alt="不安全的登入欄位,會顯示於網頁主控台及密碼欄位中的對應警告。" src="https://mdn.mozillademos.org/files/14783/Insecure_Password_Console_Contextual_sm.png" style="height: 566px; width: 790px;"></p> + +<div class="note"> +<p><strong>備註</strong>:在 HTTP 文件中嵌入 HTTPS 登入頁面也不安全 — 攻擊者可以變更頁框超連結以指向惡意網站。</p> +</div> + +<h3 id="在表單行為中使用_HTTP_網址"><strong>在表單行為中使用 HTTP 網址</strong></h3> + +<p>在這種情況下,任何用戶輸入的資料都以明文傳送。對於任何側錄該網路的人,從資料送出到抵達網頁伺服器,用戶密碼都清楚可見。</p> + +<p style="text-align: center;"><img alt="不安全的登入表單行為,會顯示於網頁主控台及密碼欄位中的對應警告。" src="https://mdn.mozillademos.org/files/14785/Insecure_Action_Password_Console_Contextual_sm.png" style="height: 566px; width: 790px;"></p> + +<h2 id="重複使用相同密碼">重複使用相同密碼</h2> + +<p>網站有時會需要用戶名稱與密碼,但並不實際儲存敏感資料。例如,新聞網站可能會儲存用戶想要再次閱覽的文章,但不會儲存其它用戶資料。上述範例的網頁開發者可能較無動機保護他們的網站與用戶憑證。</p> + +<p>不幸的是,<a href="https://www.lightbluetouchpaper.org/2011/02/09/measuring-password-re-use-empirically/">重複使用相同密碼是非常危險的</a>。用戶在多個網站皆使用相同密碼(如新聞網站、社群網站、電子信箱等)。因此,即使非法存取貴網站的用戶名稱與密碼並不對您構成嚴重問題,對於在不同網站(如網路銀行)使用相同名稱與密碼的用戶而言,卻會造成嚴重威脅。攻擊者愈來愈聰明,他們會從一個網站竊取用戶名稱與密碼的配對,並在更有利可圖的網站上重複嘗試。</p> + +<h2 id="參見">參見</h2> + +<ul> + <li class="entry-title"><a href="https://blog.mozilla.org/tanvi/2016/01/28/no-more-passwords-over-http-please/">No More Passwords over HTTP, Please!</a> — detailed blog post with more information, and FAQ.</li> +</ul> + +<ul> + <li class="entry-title"><a class="external" href="https://blog.mozilla.org/tanvi/2016/01/28/no-more-passwords-over-http-please/">No More Passwords over HTTP, Please!</a> — 提供詳細資訊和常見問題的部落格文章</li> +</ul> + +<p class="entry-title">{{QuickLinksWithSubpages("/en-US/docs/Web/Security")}}</p> diff --git a/files/zh-tw/web/security/mixed_content/how_to_fix_website_with_mixed_content/index.html b/files/zh-tw/web/security/mixed_content/how_to_fix_website_with_mixed_content/index.html new file mode 100644 index 0000000000..5bf19f8c7d --- /dev/null +++ b/files/zh-tw/web/security/mixed_content/how_to_fix_website_with_mixed_content/index.html @@ -0,0 +1,29 @@ +--- +title: 如何修正含有混合內容的網站 +slug: Web/Security/Mixed_content/How_to_fix_website_with_mixed_content +tags: + - 混和的主動內容 + - 混和的被動內容 +translation_of: Web/Security/Mixed_content/How_to_fix_website_with_mixed_content +--- +<p>自 <a href="/zh-TW/docs/Mozilla/Firefox/Releases/23" title="/zh-TW/docs/Mozilla/Firefox/Releases/23">Firefox 23</a> 起,Firefox 會預設阻擋<a href="/zh-TW/docs/Security/MixedContent#Mixed_active_content" title="/zh-TW/docs/Security/MixedContent#Mixed_active_content">主動型混合內容</a>。這項動作是跟在 <a href="http://blogs.msdn.com/b/ie/archive/2011/06/23/internet-explorer-9-security-part-4-protecting-consumers-from-malicious-mixed-content.aspx" title="http://blogs.msdn.com/b/ie/archive/2011/06/23/internet-explorer-9-security-part-4-protecting-consumers-from-malicious-mixed-content.aspx">IE 9</a> 和 <a href="http://googleonlinesecurity.blogspot.com/2011/06/trying-to-end-mixed-scripting.html" title="http://googleonlinesecurity.blogspot.com/2011/06/trying-to-end-mixed-scripting.html">Chrome</a> 後實行的。</p> + +<p>本頁面會告訴你,身為一個網頁開發者需要知道甚麼。</p> + +<h2 id="你的網站可能出問題了">你的網站可能出問題了</h2> + +<p>如果你的網站由 HTTPS 傳輸,那麼本頁所有由 HTTP 接收的<a href="/zh-TW/docs/Security/MixedContent#Mixed_active_content" title="/zh-TW/docs/Security/MixedContent#Mixed_active_content">主動型混合內容</a>就會被封鎖。你的網站可能就會讓使用者遇到一些問題(像是 iframes 或擴充套件無法載入…之類的)。至於 <a href="/zh-TW/docs/Security/MixedContent#Mixed_passivedisplay_content" title="/zh-TW/docs/Security/MixedContent#Mixed_passive.2Fdisplay_content">被動型混合內容</a> 預設是會顯示出來的,可是使用者也可以設定將這類內容擋下來。</p> + +<p>值得注意的是,由於阻擋混合內容已經在 Chrome 和 Internet Explorer 中實行了,所以如果你的網站已經在這些瀏覽器中出問題,那麼在 Firefox 也很有可能會發生相同情況。</p> + +<p>在任何情況下,要知道網站是否出問題的最好方法,就是下載 <a href="https://www.mozilla.org/zh-TW/firefox/developer/" title="https://www.mozilla.org/zh-TW/firefox/developer/">最新的 Firefox Developer Edition</a>,然後到網站中的不同頁面打開<a href="/zh-TW/docs/Tools/Web_Console" title="/zh-TW/docs/Tools/Web_Console">網頁主控台</a>(要啟用「安全」訊息)、並檢查是否有任何混合內容的回報。也可以用 <a href="http://www.jitbit.com/sslcheck/">SSL-check</a> or <a href="https://www.missingpadlock.com">Missing Padlock</a> 這網路爬蟲、或是桌面桌面, <a href="https://httpschecker.net/how-it-works">HTTPSChecker</a> 來檢查並抓出不安全的內容、另外還有文字介面的工具 <a href="https://github.com/agis/mcdetect">mcdetect</a>。如果檢查不到任何有關於混和式內容的東西,就代表你的網站狀態良好:繼續建置你出色的網站吧!</p> + +<h2 id="如何修復你的網站">如何修復你的網站</h2> + +<p>避免混合內容阻塞最好的方法,就是使用 HTTPS 而不是 HTTP 來傳輸所有的內容。</p> + +<p><strong>對於你自己的域名,</strong>使用 HTTPS 來傳輸所有內容並修正你的連結。一般而言 HTTPS 版本的內容都已經存在了,只需要在連結後面加上「s」:就是將 http:// 改成 https:// 。</p><p></p> + +<p>但有時候,媒體的路徑可能不正確。按照作業系統的不同,你可以使用線上或離線的工具如 <a href="https://wummel.github.io/linkchecker/">linkchecker</a> 來解決問題。</p> + +<p><strong>對於其他域名,</strong>盡可能使用該網站的 HTTPS 版本。如果 HTTPS 不能用,試著跟域名擁有者聯絡並詢問他們是否可以使用 HTTPS 傳輸內容。</p> diff --git a/files/zh-tw/web/security/mixed_content/index.html b/files/zh-tw/web/security/mixed_content/index.html new file mode 100644 index 0000000000..537dc13f45 --- /dev/null +++ b/files/zh-tw/web/security/mixed_content/index.html @@ -0,0 +1,80 @@ +--- +title: 混合內容 +slug: Web/Security/Mixed_content +tags: + - HTTP + - HTTPS + - NeedsTranslation + - Security + - TopicStub +translation_of: Web/Security/Mixed_content +--- +<p>當使用者以 {{Glossary("HTTPS")}} 瀏覽網站時,他們與伺服器之間的連線就會以 {{Glossary("TLS")}} 加密,以防受到竊聽或中間人攻擊。<span class="seoSummary">一個含有 HTTP 明文內容的 HTTPS 頁面稱為<strong>混合內容(mixed content)</strong>。這種頁面只有部份加密,沒有加密的內容,易於遭到竊聽和中間人攻擊。</span>這會令網頁不安全。</p> + +<h2 id="混合內容的類型">混合內容的類型</h2> + +<p>混合內容的類型有兩種:<strong>被動/顯示型混合內容(mixed passive/display content)</strong>與<strong>主動型混合內容(mixed active content)</strong>。兩者不同處在於內容遭中間人攻擊竄改後,其最壞情況下的威脅程度。如果是被動型混合內容,威脅程度較低(可能有錯誤內容、或者用戶的 cookie 遭到竊取)。如果是主動型混合內容,威脅就可能會變成網絡釣魚、敏感資料洩露、被重定向到惡意網站……等等。</p> + +<h3 id="被動顯示型混合內容">被動/顯示型混合內容</h3> + +<p>被動/顯示型混合內容內容是指包在 HTTPS 頁面,但無法改變其他部分的 HTTP 內容。例如,攻擊者能把放在 HTTP 的圖像,換成對用戶而言不適當的圖片或訊息。攻擊者也能監看圖片提供給哪些用戶,來推斷用戶活動的相關資訊:圖片通常只能在網站內的特定頁面提供。如果攻擊者觀察了某些圖片的 HTTP 請求,他們還能確認用戶在訪問哪個網頁。</p> + +<h4 id="被動型混合內容清單">被動型混合內容清單</h4> + +<p>以下列出會被視為被動型混合內容的 HTTP 請求:</p> + +<ul> + <li>{{HTMLElement("img")}}(<code>src</code> 屬性)</li> + <li>{{HTMLElement("audio")}}(<code>src</code> 屬性)</li> + <li>{{HTMLElement("video")}}(<code>src</code> 屬性)</li> + <li>{{HTMLElement("object")}} subresource(如果 <code><object></code> 發起 HTTP 請求)</li> +</ul> + +<h3 id="主動型混合內容">主動型混合內容</h3> + +<p><strong>主動型混合內容</strong>是指有權訪問文件 HTTPS 頁面、物件模型的內容。這種混合內容可以改變 HTTPS 頁面行為、並暗自竊取用戶的敏感資訊。因此,主動型混合內容除了內容除了上文所述的風險外,還容易受到其他攻擊媒介的威脅。</p> + +<p>針對主動型混合內容,中間人攻擊者可以攔截 HTTP 內容的請求、並竄改回應以植入惡意 JavaScript 程式碼。惡意的主動型混合內容能竊取用戶的憑證、用戶的敏感資料、甚至透過如瀏覽器或套件的漏洞,嘗試安裝惡意軟體。</p> + +<p>混合內容涉及的風險,取決於用戶訪問的網站類型、還有該網站資訊的敏感程度。網頁可能有公諸於世的公開資料、也可能有僅限授權者閱覽的私人資料。即使網頁是公開的,也沒有用戶的敏感資料,混合內容依舊給攻擊者把用戶重定向到其他 HTTP 頁面、並從這些網站竊取 HTTP cookie 的機會。</p> + +<h4 id="主動型混合內容示例">主動型混合內容示例</h4> + +<p>以下列出會被視為主動型混合內容的 HTTP 請求:</p> + +<ul> + <li>{{HTMLElement("script")}}(<code>src</code> 屬性)</li> + <li>{{HTMLElement("link")}}(<code>href</code> 屬性)(包含 CSS 樣式表)</li> + <li>{{HTMLElement("iframe")}}(<code>src</code> 屬性)</li> + <li>{{domxref("XMLHttpRequest")}} 請求</li> + <li>{{domxref("GlobalFetch.fetch","fetch()")}} 請求</li> + <li>所有用到 {{cssxref("url")}} 的 CSS 值({{cssxref("@font-face")}}、{{cssxref("cursor")}}、{{cssxref("background-image")}}……等等)。</li> + <li>{{HTMLElement("object")}}(<code>data</code> 屬性)</li> +</ul> + +<p>其他資源如 web fonts 與 workers 也可能被認定為主動型混合內容,<a href="https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/core/loader/MixedContentChecker.cpp&q=MixedContentChecker::contextTypeFromContext%20f:cpp&sq=package:chromium&type=cs">因為在 Chromium 就是這樣</a>。</p> + +<h2 id="網頁主控台的警告">網頁主控台的警告</h2> + +<p>Firefox 網頁主控台會在網站含有混合內容時,於「網路」標籤顯示警告。以 HTTP 傳輸的混合內容資源會被標為紅色,後面會附上導往這一頁的「混合內容」標註。</p> + +<p><a class="internal" href="/files/12545/Mixed_content_-_Net_pane.png"><img alt="Screen shot of the web console displaying a mixed content warning." src="https://mdn.mozillademos.org/files/12545/Mixed_content_-_Net_pane.png" style="border-style: solid; border-width: 1px; height: 286px; width: 720px;"></a></p> + +<p>找到網頁主控台的警告後,可以在你的網站使用 <a href="/zh-TW/docs/Web/HTTP/CSP">Content Security Policy (CSP)</a> 或網站爬蟲找到問題,,例如 <a href="https://httpschecker.net/guides/https-checker">HTTPS Checker</a> 或是 <a href="https://github.com/bramus/mixed-content-scan">Mixed Content Scan</a>。</p> + +<p>從 Firefox 23 以後,預設會封鎖混合內容(要封鎖混合的顯示內容也可以設定)。為了令 web 開發者便於尋找混合內容的錯誤,所有遭到封鎖的混合內容會被紀錄到網頁主控台的安全標籤,如下所示:</p> + +<p><a href="/files/5261/blocked-mixed-content-errors.png"><img alt="A screenshot of blocked mixed content errors in the Security Pane of the Web Console" src="https://mdn.mozillademos.org/files/12543/mixed_content_webconsole.png" style="border-style: solid; border-width: 1px; height: 285px; width: 720px;"></a></p> + +<p>要修正這個錯誤,就要移除所有的 HTTP 請求、並以 HTTPS 取代之。部份例子包含 JavaScript 檔案、CSS 樣式表、影像檔、影片檔或是其他多媒體文件。</p> + +<div class="note"> +<p><strong>注</strong>:Firefox 55 以後,在本機端會允許混合內容的載入(請參見 {{bug(903966)}})。</p> +</div> + +<h2 id="參見">參見</h2> + +<ul> + <li><a href="https://w3c.github.io/webappsec/specs/mixedcontent/" title="https://w3c.github.io/webappsec/specs/mixedcontent/">Mixed Content - W3C Editor's Draft</a></li> + <li><a href="/zh-TW/docs/Security/MixedContent/How_to_fix_website_with_mixed_content">如何修正含有混和內容的網站</a></li> +</ul> diff --git a/files/zh-tw/web/security/same-origin_policy/index.html b/files/zh-tw/web/security/same-origin_policy/index.html new file mode 100644 index 0000000000..9c80f3e435 --- /dev/null +++ b/files/zh-tw/web/security/same-origin_policy/index.html @@ -0,0 +1,117 @@ +--- +title: 同源政策 (Same-origin policy) +slug: Web/Security/Same-origin_policy +translation_of: Web/Security/Same-origin_policy +--- +<p>同源政策限制了程式碼和不同網域資源間的互動。</p> + +<h2 id="同源定義">同源定義</h2> + +<p>所謂同源是指兩份網頁具備相同協定、埠號 (如果有指定) 以及主機位置,下表提供了一些例子展示那些來源和http://store.company.com/dir/page.html屬於同源:</p> + +<table class="standard-table"> + <tbody> + <tr> + <th>URL</th> + <th>Outcome</th> + <th>Reason</th> + </tr> + <tr> + <td><code>http://store.company.com/dir2/other.html</code></td> + <td>同源</td> + <td></td> + </tr> + <tr> + <td><code>http://store.company.com/dir/inner/another.html</code></td> + <td>同源</td> + <td></td> + </tr> + <tr> + <td><code>https://store.company.com/secure.html</code></td> + <td>不同源</td> + <td>協定不同</td> + </tr> + <tr> + <td><code>http://store.company.com:81/dir/etc.html</code></td> + <td>不同源</td> + <td>埠號不同</td> + </tr> + <tr> + <td><code>http://news.company.com/dir/other.html</code></td> + <td>不同源</td> + <td>主機位置不同</td> + </tr> + </tbody> +</table> + +<p>另外請參考 <a href="/en-US/docs/Same-origin_policy_for_file:_URIs">file來源定義: URL</a>。</p> + +<p>Cookie 的來源定義和上述不一樣。</p> + +<h2 id="變更來源">變更來源</h2> + +<p>網頁能夠有限地變更來源,我們可以將 {{domxref("document.domain")}} 存為目前網域後半部,然後較短的網域就會作為之後來源檢查,譬如我們在 http://store.company.com/dir/other.html 的文件裡執行以下程式碼:</p> + +<pre class="notranslate">document.domain = "company.com"; +</pre> + +<p>執行完後,網頁能以 http://company.com/dir/page.html 通過同源檢查。然而基於同源檢查,company.com 無法將 document.domain 存為 othercompany.com。</p> + +<p>任何變更 document.domain 行為,包括 document.domain = document.domain 都會導致埠號重置為 null,因此無法只藉由執行 document.domain = "company.com" 讓company.com:8080 和 company.com 互動,必須兩邊都重新設定好讓埠號都一致重置為 null。</p> + +<div class="note"> +<p><strong>Note:</strong> 為了讓子網域可以安全的存取其母網域,我們需要一起改變子、母網域的document.domain 為相同值,即使只是將母網域設回原始值也是必要,否則將會導致許可權錯誤 (Permission Error)。</p> +</div> + +<h2 id="跨來源網路存取">跨來源網路存取</h2> + +<p>同源政策控制了兩個不同網域來源互動,例如當使用{{domxref("XMLHttpRequest")}}。這些互動可分為以下三類:</p> + +<ul> + <li>跨來源寫(Cross-origin writes)通常被允許,例如有連結、重新導向以及表單送出。少數某些HTTP請求需要<a href="https://developer.mozilla.org/zh-TW/docs/HTTP/Access_control_CORS#.E5.85.88.E5.B0.8E.E8.AB.8B.E6.B1.82">先導請求</a>。</li> + <li>跨來源嵌入(Cross-origin embedding)通常被允許,例子請參照下方。</li> + <li>跨來源讀取(Cross-origin read) 通常不被允許,不過通常可以藉由嵌入來繞道讀取,例如嵌入影像寬高讀取、嵌入程式碼或<a href="https://grepular.com/Abusing_HTTP_Status_Codes_to_Expose_Private_Information">嵌入資源</a>。</li> +</ul> + +<p>下面是一些能跨來源嵌入的資源:</p> + +<ul> + <li><script src=”…”></script>內的Javascript,但語法錯誤訊息只限於同源程式碼腳本。</li> + <li>CSS的<link rel="stylesheet" href="...">,由於CSS寬鬆語法規則,跨來源CSS要求正確的Content-Type標頭。限制在瀏覽器間各有差異: <a href="http://msdn.microsoft.com/en-us/library/ie/gg622939%28v=vs.85%29.aspx" title="http://msdn.microsoft.com/en-us/library/ie/gg622939%28v=vs.85%29.aspx">IE</a>, <a href="http://www.mozilla.org/security/announce/2010/mfsa2010-46.html" title="http://www.mozilla.org/security/announce/2010/mfsa2010-46.html">Firefox</a>, <a href="http://code.google.com/p/chromium/issues/detail?id=9877" title="http://code.google.com/p/chromium/issues/detail?id=9877">Chrome</a>, <a href="http://support.apple.com/kb/HT4070" title="http://support.apple.com/kb/HT4070">Safari</a> (請至CVE-2010-0051)以及<a href="http://www.opera.com/support/kb/view/943/" title="http://www.opera.com/support/kb/view/943/">Opera</a>.</li> + <li>{{htmlelement("img")}}的影像;支援格式有PNG, JPEG, GIF, BMP, SVG等等</li> + <li> {{htmlelement("video")}}和{{htmlelement("audio")}}媒體檔案</li> + <li> <a href="/en-US/docs/HTML/Element/object" title="HTML/Element/object"><code><object></code></a>, <a href="/en-US/docs/HTML/Element/embed" title="HTML/Element/embed"><code><embed></code></a>和<a href="/en-US/docs/HTML/Element/applet" title="HTML/Element/applet"><code><applet></code></a>的外掛</li> + <li><a href="/en-US/docs/CSS/@font-face" title="CSS/@font-face"><code>@font-face</code></a> 的字型;有些瀏覽器允許跨來源字型,有些則不。</li> + <li> <a href="/en-US/docs/HTML/Element/frame" title="HTML/Element/frame"><code><frame></code></a>以及<a href="/en-US/docs/HTML/Element/iframe" title="HTML/Element/iframe"><code><iframe></code></a>中的內容;如果一個網站想要避免跨來源載入互動,可以藉由<code><a href="/en-US/docs/HTTP/X-Frame-Options" title="HTTP/X-Frame-Options">X-Frame-Options</a></code>標頭避免。</li> +</ul> + +<h3 id="如何允許跨來源存取">如何允許跨來源存取</h3> + +<p>使用<a href="https://developer.mozilla.org/zh-TW/docs/HTTP/Access_control_CORS">CORS</a>允許跨來源存取</p> + +<h3 id="如何阻擋跨來源存取">如何阻擋跨來源存取</h3> + +<ul> + <li>藉由檢查請求中包含的無法猜測的特殊記號(token)可以避免跨來源寫入,還有跨來源讀取知道此記號的網頁,這個記號即為<a href="https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29">跨站偽造(Cross-Site Request Forgery, CSRF)</a>記號。</li> + <li>確保資源無法被嵌入來防止跨來源讀取。</li> + <li>為了防止跨來源嵌入,請確保資源不被解讀為上述可嵌入格式之一;瀏覽器通常不會理會Content-Type,比如說有一個指向HTML文件的<script>標籤,瀏覽器還是會嘗試解析該HTML文件為Javascript;當你的資源不是網站進入點,可以使用CSRF記號。</li> +</ul> + +<h2 id="跨來源程式腳本存取">跨來源程式腳本存取</h2> + +<p>Javascript API例如<a href="/en-US/docs/DOM/HTMLIFrameElement" title="DOM/HTMLIFrameElement"><code>iframe.contentWindow</code></a>, {{domxref("window.parent")}}, {{domxref("window.open")}}以及{{domxref("window.opener")}},允許文件之間直接互相參照,當兩份文件的來源不同,參照存取<a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#security-window" title="http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#security-window">Window</a>和<a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#security-location" title="http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#security-location">Location</a>物件將受到限制;一些瀏覽器比規範<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=839867">准許存取更多屬性</a>。文件間的溝通也可以改用{{domxref("window.postMessage")}}來進行。</p> + +<h2 id="延伸閱讀">延伸閱讀</h2> + +<ul> + <li><a href="/en-US/docs/Same-origin_policy_for_file:_URIs" title="Same-origin policy for file: URIs">Same-origin policy for file: URIs</a></li> + <li><a href="http://www.w3.org/Security/wiki/Same_Origin_Policy" title="http://www.w3.org/Security/wiki/Same_Origin_Policy">Same-Origin Policy at W3C</a></li> +</ul> + +<div class="originaldocinfo"> +<h2 id="Original_Document_Information" name="Original_Document_Information">Original Document Information</h2> + +<ul> + <li>Author(s): Jesse Ruderman</li> +</ul> +</div> diff --git a/files/zh-tw/web/security/weak_signature_algorithm/index.html b/files/zh-tw/web/security/weak_signature_algorithm/index.html new file mode 100644 index 0000000000..764c0b4f90 --- /dev/null +++ b/files/zh-tw/web/security/weak_signature_algorithm/index.html @@ -0,0 +1,16 @@ +--- +title: 弱簽章演算法 +slug: Web/Security/Weak_Signature_Algorithm +translation_of: Web/Security/Weak_Signature_Algorithm +--- +<h3 id="簽章演算法的重要性">簽章演算法的重要性</h3> + +<p>在簽署憑證時,雜湊演算法的完整性是非常重要的一環。雜湊演算法的漏洞可能導致攻擊者獲取假造的憑證。隨著科技發展出現更多可行的攻擊新手法,並不建議繼續使用舊的演算法,且這些演算法最終該被移除。</p> + +<h3 id="SHA-1">SHA-1</h3> + +<p>以 SHA-1 為基礎的簽章非常普遍:因為到目前為止大部分憑證皆使用 SHA-1。然而考慮到 SHA-1 已經太過老舊,不建議繼續使用下去。當未來要替換憑證時,請先確認使用的是強簽章演算法。更多資訊請查閱 <a href="https://blog.mozilla.org/security/2014/09/23/phasing-out-certificates-with-sha-1-based-signature-algorithms/">Mozilla Security Blog post</a> 上的內容。</p> + +<h3 id="MD5">MD5</h3> + +<p>以 MD5 為基礎的簽章已在 2012 初被移除。</p> |