封裝是要劃定清楚的界限。在網頁瀏覽器中,這可能意味著確保您的行動程式碼不會被其他行動程式碼濫用。在伺服器上,這可能意味著區分經過驗證的資料與未經驗證的資料、區分一個使用者的資料與另一個使用者的資料,或區分允許使用者查看的資料與不允許查看的資料。
HtmlInputHidden hidden = new HtmlInputHidden();
Hidden hidden = new Hidden(element);
hidden
類型的 <input>
標籤表示使用隱藏欄位。
<input type="hidden">
...
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
...
'mydb'
的人都可以加以存取。script-src
、img-src
、object-src
、style_src
、font-src
、media-src
、frame-src
、connect-src
。*
來指示所有或部分來源。所有指令都不是強制性的。瀏覽器將允許未列示指令的所有來源,或從選用的 default-src
指令衍生值。此外,此表頭的規格隨著時間的推移而不斷演變。在第 23 版之前的 Firefox 和第 10 版之前的 IE 中,其實做為 X-Content-Security-Policy
,而在第 25 版之前的 Chrome 中,其實做為 X-Webkit-CSP
。兩個名稱都已棄用,取代為現在的標準名稱 Content Security Policy
。鑒於指令的數目、兩個棄用的替代名稱,以及對待多次出現之同一表頭和單一表頭中重複指令的方式,開發人員很可能會錯誤地配置此表頭。unsafe-inline
或 unsafe-eval
的指令違背了 CSP 的目的。script-src
指令,但未配置任何 Script nonce
。frame-src
,但未配置任何 sandbox
。django-csp
配置使用不安全的指令 unsafe-inline
和 unsafe-eval
,以便允許內嵌 Script 和程式碼評估:
...
MIDDLEWARE_CLASSES = (
...
'csp.middleware.CSPMiddleware',
...
)
...
CSP_DEFAULT_SRC = ("'self'", "'unsafe-inline'", "'unsafe-eval'", 'cdn.example.net')
...
X-Frame-Options
標頭,以指示瀏覽器是否應對應用程式進行框架處理。停用或未設定此標頭會導致跨框架相關弱點。X-Frame-Options
標頭:
<http auto-config="true">
...
<headers>
...
<frame-options disabled="true"/>
</headers>
</http>
script-src
、img-src
、object-src
、style_src
、font-src
、media-src
、frame-src
、connect-src
。這 8 個指令都將一個來源清單做為值,指定網站可存取的網域,以使用該指令所涵蓋的功能。開發人員可使用萬用字元 *
來指示所有或部分來源。其他來源清單關鍵字 (例如 'unsafe-inline'
和 'unsafe-eval'
) 提供更精細的方式來控制 script 執行,但這些是潛在有害的關鍵字。所有指令都不是強制性的。瀏覽器允許未列示指令的所有來源,或從選用的 default-src
指令衍生值。此外,此標頭的規格隨著時間的推移而不斷演變。在第 23 版之前的 Firefox 和第 10 版之前的 IE 中,其實作為 X-Content-Security-Policy
,而在第 25 版之前的 Chrome 中,則實作為 X-Webkit-CSP
。兩個名稱都已棄用,取代為現在的標準名稱 Content Security Policy
。鑒於指令的數目、兩個棄用的替代名稱,以及對待多次出現之同一標頭和單一標頭中重複指令的方式,開發人員很可能會錯誤地設定此標頭。default-src
指令:
<http auto-config="true">
...
<headers>
...
<content-security-policy policy-directives="default-src '*'" />
</headers>
</http>
script-src
、img-src
、object-src
、style_src
、font-src
、media-src
、frame-src
、connect-src
。這 8 個指令都將一個來源清單做為值,指定網站可存取的網域,以使用該指令所涵蓋的功能。開發人員可使用萬用字元 *
來指示所有或部分來源。其他來源清單關鍵字 (例如 'unsafe-inline'
和 'unsafe-eval'
) 提供更精細的方式來控制 script 執行,但這些是潛在有害的關鍵字。所有指令都不是強制性的。瀏覽器允許未列示指令的所有來源,或從選用的 default-src
指令衍生值。此外,此標頭的規格隨著時間的推移而不斷演變。在第 23 版之前的 Firefox 和第 10 版之前的 IE 中,其實作為 X-Content-Security-Policy
,而在第 25 版之前的 Chrome 中,則實作為 X-Webkit-CSP
。兩個名稱都已棄用,取代為現在的標準名稱 Content Security Policy
。鑒於指令的數目、兩個棄用的替代名稱,以及對待多次出現之同一標頭和單一標頭中重複指令的方式,開發人員很可能會錯誤地設定此標頭。*
) 來配置 *-src
指令。django-csp
設定會設定過度許可且不安全的 default-src
指令:
...
MIDDLEWARE_CLASSES = (
...
'csp.middleware.CSPMiddleware',
...
)
...
CSP_DEFAULT_SRC = ("'self'", '*')
...
Access-Control-Allow-Origin
的新 HTTP 標頭時,存取不同網域間的資料。Web 伺服器可使用此標頭,定義允許使用跨來源要求存取其網域的其他網域。但是,定義標頭時請謹慎小心,因為過度許可的 CORS 原則會允許惡意應用程式以不當方式與受害應用程式通訊,進行導致詐騙、資料竊取、轉送和其他攻擊。
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
*
做為 Access-Control-Allow-Origin
表頭的值,表示應用程式的資料可以讓在任何網域上執行的 JavaScript 存取。Access-Control-Allow-Origin
的新 HTTP 標頭時,存取不同網域間的資料。Web 伺服器可使用此標頭,定義允許使用跨來源要求存取其網域的其他網域。但是,定義標頭時請謹慎小心,因為過度許可的 CORS 原則會允許惡意應用程式以不當方式與受害應用程式通訊,進行導致詐騙、資料竊取、轉送和其他攻擊。
<websocket:handlers allowed-origins="*">
<websocket:mapping path="/myHandler" handler="myHandler" />
</websocket:handlers>
*
做為 Access-Control-Allow-Origin
表頭的值,表示應用程式的資料可以讓在任何網域上執行的 JavaScript 存取。Access-Control-Allow-Origin
的新 HTTP 標頭時,存取不同網域間的資料。Web 伺服器可使用此標頭,定義允許使用跨來源要求存取其網域的其他網域。但是,定義標頭時請謹慎小心,因為過度許可的 CORS 原則會允許惡意應用程式以不當方式與受害應用程式通訊,進行導致詐騙、資料竊取、轉送和其他攻擊。
<?php
header('Access-Control-Allow-Origin: *');
?>
*
做為 Access-Control-Allow-Origin
表頭的值,表示應用程式的資料可以讓在任何網域上執行的 JavaScript 存取。Access-Control-Allow-Origin
的新 HTTP 標頭時,存取不同網域間的資料。Web 伺服器可使用此標頭,定義允許使用跨來源要求存取其網域的其他網域。但是,定義標頭時請謹慎小心,因為過度許可的 CORS 原則會允許惡意應用程式以不當方式與受害應用程式通訊,進行導致詐騙、資料竊取、轉送和其他攻擊。
response.addHeader("Access-Control-Allow-Origin", "*")
*
作為 Access-Control-Allow-Origin
表頭的值,表示應用程式的資料可供在任何網域上執行的 JavaScript 存取。Access-Control-Allow-Origin
的新 HTTP 標頭時,存取不同網域間的資料。Web 伺服器可使用此標頭,定義允許使用跨來源要求存取其網域的其他網域。但是,定義標頭時請謹慎小心,因為過度許可的 CORS 原則會允許惡意應用程式以不當方式與受害應用程式通訊,進行導致詐騙、資料竊取、轉送和其他攻擊。
play.filters.cors {
pathPrefixes = ["/some/path", ...]
allowedOrigins = ["*"]
allowedHttpMethods = ["GET", "POST"]
allowedHttpHeaders = ["Accept"]
preflightMaxAge = 3 days
}
*
作為 Access-Control-Allow-Origin
標頭的值,表示應用程式的資料可供在任何網域上執行的 JavaScript 存取。Access-Control-Allow-Origin
的新 HTTP 標頭時,存取不同網域間的資料。Web 伺服器可使用此標頭,定義允許使用跨來源要求存取其網域的其他網域。但是,定義標頭時請謹慎小心,因為過度許可的 CORS 原則會允許惡意應用程式以不當方式與受害應用程式通訊,進行導致詐騙、資料竊取、轉送和其他攻擊。
Response.AddHeader "Access-Control-Allow-Origin", "*"
*
做為 Access-Control-Allow-Origin
表頭的值,表示應用程式的資料可以讓在任何網域上執行的 JavaScript 存取。