javascript - 安全错误 - 该页面包含来自第三方域的一个或多个脚本文件

标签 javascript security google-authentication zap google-authenticator

我正在尝试将“通过 Google 进行身份验证”嵌入到我正在开发的一个简单的网络应用程序中。我使用以下代码来执行此操作。

<html>
<head>
    <title> Home </title>
    <script src = "https://apis.google.com/js/platform.js?onload=onLoadCallback" ></script>
    <script>
        function changePage() {
            if (!gapi.auth2.getAuthInstance().isSignedIn.get()) {
                window.location.href = "login.jsp";
            }
        }
    </script>
    <script>
        gapi.load('auth2', function () {
            gapi.auth2.init().then(changePage);
        });

    </script>
    <script>

    </script>
    <script>
        var user;
        function signOut() {
            var auth2 = gapi.auth2.getAuthInstance();
            user = auth2.signOut().then(changePage);
        }
        ;
    </script>
    <meta name="google-signin-client_id" content="xxxxxxxxxxxx">

</head>
<body style="background-color:azure;">
<div class="vertcal-center">
    <div class="myclass">

        <h1>Welcome to home page
            </h1>
                <button type="button" class="button" onclick="signOut()">Log Out</button>
    </div>
</div>
</body>
</html>

但是,当我对代码运行 ZAP 分析时,它会向我发出低风险警报,提示 “该页面包含来自第三方域的一个或多个脚本文件” 。它指向以下行作为存在问题的行。

<script src = "https://apis.google.com/js/platform.js?onload=onLoadCallback" ></script>

我指的是OWASP tutorial其中描述了这个问题,我知道这可能会带来他们提到的 3 个风险,分别是

  1. 失去对客户端应用程序更改的控制。

  2. 在客户端系统上执行任意代码。

  3. 向第三方披露或泄露敏感信息。

但是,我也明白,如果我要使用 Google 身份验证,我就必须信任 Google 并假设他们不会在这里做任何坏事。

有没有更好的方法可以在我的代码中执行此操作,以便 ZAP 不会警告我?

可以忽略此警报吗?

最佳答案

ZAP 查看的是网页的主机名和嵌入的 javascript 的主机名。 由于您的网站主机名无论如何都不会是 google.com,ZAP 总是会提示。 唯一的问题是我们信任外部 JS。 但您可以下载外部 JS 文件并将其托管在您的 Web 应用程序中。 这样你就可以调用你自己的 JS 文件,然后 ZAP 将忽略它。 但是,如果 google 之后修改了 JS 文件,您本地的 JS 文件将不会获得新的修改。所以我的观点是你可以证明这一点并忽略 ZAP 报告中的问题。

当您使用外部 JavaScript 时,请务必检查它们是否存在任何已报告的已知漏洞。您可以引用[1]了解类似主题的更多信息。

[1] https://medium.com/@PrakhashS/using-retire-js-with-zap-to-identify-vulnerabilities-in-javascript-libraries-7baad56690aa#.cotei58mk

关于javascript - 安全错误 - 该页面包含来自第三方域的一个或多个脚本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42264636/

相关文章:

javascript - Ajax php post 未进行身份验证

javascript - 检查对象文字数组中的重复值并从中创建一个新对象

android - 在库中使用外部 google-services.json 文件

reactjs - 如何正确添加对 Dialogflow CX API 的 Axios 请求的授权?

javascript - 谷歌一键注册总是返回没有可用的凭据

javascript - 如何处理 AmCharts Stock 图表上的点击事件?

javascript - jquery:当单击多个元素然后切换新类

javascript - 保护客户端 API

c# - .NET 程序集插件安全

security - 为什么将随机盐与用户密码摘要一起存储在数据库中被认为是安全的?