Web应用程序在Edge Browser 41上不起作用

时间:2018-11-16 06:47:11

标签: javascript html browser microsoft-edge content-security-policy

我正在使用Intranet Web应用程序。它使用Strust2开发,并在weblogic 12c服务器上运行。应用程序可在开发环境上正常运行,而不会出现任何问题IE(11)和Edge(41)Microsoft浏览器。 但是在部署Production之后,它只能在IE(11)上运行。它无法在Edge上运行。我们可以在此之后启动登录页面,但无法在Edge上导航。 边缘浏览器控制台,我们可以看到以下错误。

CSP14321 Resource violated directive 'default-src 'self'' in Content-security-Policy:inline script https://xx.xxx.x.xx/dms/login.action at line
19 column 30.Resource will be blocked

注意:我们的Web应用程序支持IE11和Edge的工作。

我尝试了其他方法,但是无法从登录页面导航 1.i删除元标记,例如

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

2。添加元标记

<meta http-equiv="Content-Security-Policy" content="default-src 'self'"/>

上述方法不起作用。更改内容安全策略时,我们的应用程序中没有任何配置文件。请提供此帮助

这是登录页面。

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>

<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@ page import="tvm.ka.TvsGlobals"%>
<%@ page errorPage="/tvs/ka/common/KvsCommonError.jsp"%>


<head>
<title><s:text name="title.login" /></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="<%=KvsConfigMgr.strCSS%>" type="text/css" />
<script language="JavaScript" src="<%=kvsConfigMgr.strJS%>KvsCommon.js">

</script>
<script language="JavaScript" src="<%=KvsConfigMgr.strJS%>KvsLogin.js">

</script>
<script language="JavaScript">
    var MSG_USERID = "<s:text name="msg.login.userid"/>";
    var MSG_PASSWORD = "<s:text name="msg.login.password"/>";
</script>
</head>
<body background="<%=KvsConfigMgr.strLstBg%>" leftmargin="0"
    topmargin="0" marginwidth="0" marginheight="0" onLoad="focusFirst()">
    <s:form action="login" method="POST">
        <table border="0" cellspacing="0" cellpadding="0" width="100%">
            <tr>
                <td valign="top"><div align="center">
                        <table width="100%" border="0" cellspacing="0" cellpadding="0">
                            <tr>
                                <td colspan="2" background="<%=KvsConfigMgr.strIMG%>topbg.gif">
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0"
                                        background="<%=KvsConfigMgr.strIMG%>topbg.gif">
                                        <tr>
                                            <td><table width="100%" border="0" cellpadding="0"
                                                    cellspacing="0">
                                                    <tr>
                                                        <td width="13%"
                                                            background="<%=KvsConfigMgr.strIMG%>logo_bg.jpg"><img
                                                            src="<%=KvsConfigMgr.strIMG%>default_01.jpg" width="133"
                                                            height="77" alt=""></td>
                                                        <td width="87%"
                                                            background="<%=KvsConfigMgr.strIMG%>top_bg.jpg"><img
                                                            src="<%=KvsConfigMgr.strIMG%>default_02.jpg" width="645"
                                                            height="77" alt=""></td>
                                                    </tr>
                                                </table></td>
                                        </tr>
                                    </table>
                                </td>
                            </tr>
                        </table>
                    </div>
                    <div align="left"></div></td>
            </tr>
        </table>
        <table border="0" cellspacing="0" cellpadding="0" width="100%">
            <tr>
                <td width="40%">&nbsp;</td>
                <td class="errorText">
                    <%-- <s:if
                                        test="${not empty ${KmsGlobals.GLOBAL_ERR_MSG_LIST}.null}"
                                        scope="request">
                                        <s:iterator value="${KmsGlobals.GLOBAL_ERR_MSG_LIST}.null"
                                            indexId="count" id="errMsg" type="java.lang.String">
                                            <s:property value="errMsg.null" />
                                            <br>
                                        </s:iterator>
                                    </s:if> --%> <s:if test="hasActionErrors()">
                        <div class="error">
                            <s:actionerror />
                        </div>
                    </s:if>
                </td>
            </tr>
            <tr>
                <td class="bodyTextSmall">&nbsp;</td>
                <td>
                    <table border="0" cellspacing="0" cellpadding="5">
                        <tr>
                            <td>To begin, please key in your user id and<br />password
                                below, and click on login.
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td>
                    <table border="0" cellspacing="0" cellpadding="5">
                        <tr>
                            <td><img src="<%=KvsConfigMgr.strIMG%>tran.gif" width="80"
                                height="8" /></td>
                            <td><img src="<%=KvsConfigMgr.strIMG%>tran.gif" width="150"
                                height="8" /></td>
                            <td><img src="<%=KvsConfigMgr.strIMG%>tran.gif" width="80"
                                height="8" /></td>
                        </tr>
                        <tr>
                            <td class="bodyTextBold">User ID</td>
                            <td><input type="text" name="strUserId" size="20"
                                tabindex="1" /></td>
                            <td>&nbsp;</td>
                        </tr>
                        <tr>
                            <td class="bodyTextBold">Password</td>
                            <td>
                                <%--
                   <!--html:password property="strPasswd" autocomplete="off" size="20" tabindex="2"/ -->
                         I-WAPT-8 Password autocomplete attribute was enabled
                         Application Penetration Test Fix
                  --%> <input type="password" name="strPasswd"
                                autocomplete="off" size="20" tabindex="2" />
                            </td>
                            <td><input class="button" style="width: 70px" type="submit"
                                value="Login" onClick="return validate()" tabindex="3" /></td>
                        </tr>
                        <tr>
                            <td colspan="3" class="errorText">For authorised use only.
                                Unauthorised use is strictly prohibited.</td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
        <%-- <s:hidden name="dispatch" value="login" /> --%>
        <input type="hidden" name="dispatch" value="login" />

    </s:form>

    <div id="version-tag"><%=KvsConfigMgr.strVer%></div>

    <style>
#version-tag {
    position: absolute;
    bottom: 0;
    left: 0;
    FONT-WEIGHT: normal;
    FONT-SIZE: 11px;
    COLOR: rgba(0, 0, 0, 0.6);
    FONT-FAMILY: Arial, Verdana, Helvetica, sans-serif;
    vertical-align: text-top;
    border-color: #0085E0;
}
</style>
</body>

1 个答案:

答案 0 :(得分:1)

content-security-policy 一起使用时,您不能使用git add -A git stash git pull git stash drop # optional

之类的内联Javascript
onLoad="focusFirst()"
  

https://developer.chrome.com/extensions/contentSecurityPolicy#JSExecution

根本不会执行内联Javascript代码。

相反,使用以下代码创建一个Javascript文件:

<script language="JavaScript">
    var MSG_USERID = "<s:text name="msg.login.userid"/>";
    var MSG_PASSWORD = "<s:text name="msg.login.password"/>";
</script>

确保此时知道document.addEventListener('load', focusFirst); 函数。

如果您将侦听器附加到focusFirst事件(此事件将在解析所有HTML时触发,而focusFirst仅在以后触发,则取决于DOMContentLoaded的作用可能会提高性能)一旦所有链接的资源(如图片等)均已加载)。

请注意,内联load块也不会在内容安全策略处于活动状态时执行。