【问题标题】:Carousel doesn't work when Content Security Policy enabled启用内容安全策略时轮播不起作用
【发布时间】:2016-09-10 19:58:09
【问题描述】:

我正在使用 CSP,但我的 Javascript 轮播无法正常工作,除了轮播外一切正常。 轮播 CSS 在另一个文件中并且可以工作,Java 脚本也在另一个文件中但不工作。

我没有收到任何错误。

我做错了什么?

提前感谢您的宝贵时间。

CSP:

<meta http-equiv="Content-Security-Policy" content="style-src 'self' https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css; script-src 'self' https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js; script-src 'self' https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js">

轮播 html:

           <div class="row">
                <div class="col-md-12">
                    <div class="carousel carousel-showsixmoveone slide" id="carousel123">
                        <div class="carousel-inner">
                            <div class="item active" ><div class="col-xs-12 col-sm-4 col-md-2"><a href="#"><img src="img/bests/1.jpg" class="img-responsive"></a></div></div>
                            <div class="item"><div class="col-xs-12 col-sm-4 col-md-2"><a href="#"><img src="img/bests/7.jpg" class="img-responsive"></a></div></div>
                            <div class="item"><div class="col-xs-12 col-sm-4 col-md-2"><a href="#"><img src="img/bests/1.jpg" class="img-responsive"></a></div></div>
                            <div class="item"><div class="col-xs-12 col-sm-4 col-md-2"><a href="#"><img src="img/bests/7.jpg" class="img-responsive"></a></div></div>
                            <div class="item"><div class="col-xs-12 col-sm-4 col-md-2"><a href="#"><img src="img/bests/2.jpg" class="img-responsive"></a></div></div>
                            <div class="item"><div class="col-xs-12 col-sm-4 col-md-2"><a href="#"><img src="img/bests/8.jpg" class="img-responsive"></a></div></div>
                            <div class="item"><div class="col-xs-12 col-sm-4 col-md-2"><a href="#"><img src="img/bests/9.jpg" class="img-responsive"></a></div></div>
                            <div class="item"><div class="col-xs-12 col-sm-4 col-md-2"><a href="#"><img src="img/bests/2.jpg" class="img-responsive"></a></div></div>
                        </div>
                        <div class="control">
                            <a href="#carousel123" data-slide="next"><img src="css/right.png"></a>
                            &nbsp;
                            &nbsp;
                            <a href="#carousel123" data-slide="prev"><img src="css/left.png"></a>
                        </div>
                    </div>
                </div>
            </div>

JavaScript 文件

(function(){
    $('#carousel123').carousel({ interval: 2000 });
    $('#carouselABC').carousel({ interval: 3600 });
}());
(function(){
    $('.carousel-showsixmoveone .item').each(function(){
        var itemToClone = $(this);
        for (var i=1;i<6;i++) {
            itemToClone = itemToClone.next();
            if (!itemToClone.length) {
                itemToClone = $(this).siblings(':first');
            }
            itemToClone.children(':first-child').clone()
           .addClass("cloneditem-"+(i))
           .appendTo($(this));
        }
    });
}());

【问题讨论】:

    标签: javascript twitter-bootstrap security carousel xss


    【解决方案1】:

    代码中不能有多个script-src 'self',因此 CSP 元数据将如下所示:

    <meta http-equiv="Content-Security-Policy" content="
    style-src 'self' https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css;
    script-src 'self' https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-25
      • 2018-06-01
      • 2021-01-12
      • 2017-08-13
      • 2017-02-10
      • 2017-09-07
      • 2016-06-22
      • 1970-01-01
      相关资源
      最近更新 更多