本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS WAF JavaScript 整合
您可以使用 JavaScript 整合 API 在瀏覽器和其他執行的裝置中實作 AWS WAF 應用程式整合 JavaScript。
驗證碼謎題和無聲挑戰只能在瀏覽器訪問 HTTPS 端點時運行。瀏覽器客戶端必須在安全上下文中運行才能獲取令牌。
智慧型威脅 API 可讓您透過無訊息的用戶端瀏覽器挑戰來管理 Token 授權,並將權杖包含在傳送至受保護資源的要求中。
CAPTCHA 整合 API 可新增至智慧型威脅 API,讓您自訂用戶端應用程式中 CAPTCHA 難題的位置和特性。該 API 利用智能威脅 API 獲取 AWS WAF 令牌,以便在最終用戶成功完成 CAPTCHA 難題後在頁面中使用。
通過使用這些集成,您可以確保客戶端的遠程過程調用包含有效的令牌。當這些整合 API 位於應用程式的頁面上時,您可以在 Web ACL 中實作緩和規則,例如封鎖不包含有效權杖的要求。您也可以透過在規則中使用Challenge或CAPTCHA動作來實作規則,以強制使用用戶端應用程式取得的權杖。
下列清單顯示 Web 應用程式頁面中一般實作智慧型威脅 API 的基本元件。
<head> <script type="text/javascript" src="
Web ACL integration URL
/challenge.js" defer></script> </head> <script> const login_response = await AwsWafIntegration.fetch(login_url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: login_body }); </script>
驗證碼整合 API 可讓您自訂最終使用者的驗證碼拼圖體驗。CAPTCHA 集成利用 JavaScript 智能威脅集成,用於瀏覽器驗證和令牌管理,並添加了用於配置和渲染 CAPTCHA 難題的功能。
以下列表顯示了在 Web 應用程序頁面中驗證碼 JavaScript API 的典型實現的基本組成部分。
<head> <script type="text/javascript" src="<Integration URL>/jsapi.js" defer></script> </head> <script type="text/javascript"> function showMyCaptcha() { var container = document.querySelector("#my-captcha-container"); AwsWafCaptcha.renderCaptcha(container, { apiKey: "...API key goes here...", onSuccess: captchaExampleSuccessFunction, onError: captchaExampleErrorFunction, ...other configuration parameters as needed... }); } function captchaExampleSuccessFunction(wafToken) { // Use WAF token to access protected resources AwsWafIntegration.fetch("...WAF-protected URL...", { method: "POST", ... }); } function captchaExampleErrorFunction(error) { /* Do something with the error */ } </script> <div id="my-captcha-container"> <!-- The contents of this container will be replaced by the captcha widget --> </div>