1

我在 firefox os 验证器中有这条消息:

Erreur:您的代码似乎正在执行违反特权应用程序的 CSP(内容安全策略)的操作。您可以在 Mozilla 开发人员网站上找到有关 CSP 允许和不允许的更多信息。https://developer.mozilla.org/en-US/docs/Security/CSP

www/index.html
16
17
<script type="text/javascript" src="js/select2.js"></script>
<script>

代码 index.html :

<!DOCTYPE html> 
<html>
<head>
    <title>Chri App</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="js/jquery.css.min.css" rel="stylesheet"/>
    <script src="js/jquery-1.9.1.min.js"></script>
    <script src="js/jquery.mobile-1.3.1.min.js"></script>
            <meta charset='utf-8'> 
        <meta name="format-detection" content="telephone=no" />
                <link rel="stylesheet" type="text/css" href="css/index.css" />
        <meta name="viewport" content="width=device-width, initial-scale=1">  
        <link href="js/select2/select2.css" rel="stylesheet" > 
        <link href="css/web_app.css" rel="stylesheet" > 
        <script src="main.js"></script>
        <script type="text/javascript" src="js/select2/select2.js"></script> 
        <script>

        $(document).bind('pageinit',function(e ){


        $.support.cors = true;
        $.mobile.allowCrossDomainPages= true;
        $.mobile.selectmenu.prototype.options.nativeMenu = false;





            // When the testform is submitted
        $("#search-form-location").select2();
        $("#search-form-category").select2();
            $("#testform").submit(function() {

            $.mobile.loading('show');
.......

你有想法吗?

4

1 回答 1

3

如果您正在编写一个特权(或认证)应用程序,它需要遵守几个要求,以使其更健壮 - 不易受到不同类型的攻击。其中一项限制禁止内联 javascript,即嵌入<script>标签中的 javascript - 您应该将这些内联脚本放入外部.js文件中,并通过src属性链接它们。

查看您的代码,这应该是验证器抱怨的原因(请参阅$(document).bind(...那里的 jQuery 块)。将此块放入外部文件应该可以解决此问题。

您可以阅读有关MDN 的其他 CSP 要求和限制的更多信息:Apps CSP

于 2013-10-06T15:07:34.997 回答