yjiang's cake

Content Security Policy(csp)

HTTPS

这个不需要多说,一切为了信息安全.

CSP策略

对于HTTPS站点,其可能包含一些非HTTPS的内容或资源(即混合内容).
例如css js使用cdn的情况,本站是https,而cdn不是.
csp策略的作用就是让指定的css js可以执行,而没指定的就被block了.
csp策略,既可以定义在服务端(例如php中/nginx中),也可以定义在web端.

简单举个例子(只允许引用https的资源):

    #php服务端
    header("Content-Security-Policy: default-src https:");
    #nginx
    add_header Content-Security-Policy "default-src https:"
    #html
    <meta http-equiv="Content-Security-Policy" content=" default-src https:">

对于定义在web端还是服务端,各有各自的优势;比如服务端更容易控制及修改,但是容易被运营商给过滤掉.

关于详细的csp策略介绍,建议看看mozilla官方的文档[CSP策略指令].

当页面使用https混合http内容

例如:

    <link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.css" rel="stylesheet">

当使用百度CDN公共库中的css样式时,由于百度CDN并不支持ssl协议,就会报Provisional headers are shown;网络请求提示blocked:mixed-content;

F634DE4B-99FE-4841-AF6A-EC8F7DEE85FE.png

修复这种混合内容的错误提示,可能需要耗费大量时间去发现,但可以针对不同的情况对待;

如果是个人,对于内容安全性并不是特别的重视,可以用Upgrading insecure requests来强制浏览器使用安全的请求.

如图,可以看到请求已经自动转为http:
B5F3C4B0-E38E-47A1-A5CD-2F16979E1221.png

谷歌对此的解释是: One of the newest and best tools to automatically fix mixed content is the upgrade-insecure-requests CSP directive.
既然谷歌说这么好,那就用吧:

    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

当然也可以一刀切,禁止所有非https内容;

    <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">

如果是企业、大型网站,还是需要一个健全的csp策略,可以大大减少xss攻击的情况.

参考引用:

xcode可删除文件列表

#连接真机生成的文件,可全部删掉或者把不常用的版本删掉,再次连接设备会自动生成
~/Library/Developer/Xcode/iOS DeviceSupport

#app打包生成的文件,可删掉不需要的项目打包文件
~/Library/Developer/Xcode/Archives

#项目的索引文件等,可全部删除,或删除不常用的项目,再次打开项目会自动生成
~/Library/Developer/Xcode/DerivedData

PlistBuddy简单实用说明

PlistBuddy

位于bash /usr/libexec/PlistBuddy,用于操作plist内容节点

Print Add Del Set等操作都类似

#add
/usr/libexec/PlistBuddy -c "add :title string 'foo'" test.plist
#print
/usr/libexec/PlistBuddy -c "print :title" test.plist
#set
/usr/libexec/PlistBuddy -c "set :title string 'bar'" test.plist

plist文件中Array类型与Dict类型

Array: 没有key,只能用index来找到对应的节点,例如:

410D5A3F-C6FA-4B2C-B7DA-2FCB5C244554.png

当我想找到foo这个节点,在Array中,foo对应的index是0,所以Print操作如下

    /usr/libexec/PlistBuddy -c "print title:0" test.plist

Dict: 有key,可以使用key来找到对应的节点,例如:

E79159E0-0144-42EE-9E35-167868D443DD.png

当我想找到newstitle这个节点,所以Print操作如下

    /usr/libexec/PlistBuddy -c "print news:title" test.plist

Copyright © 2016 yjiang's cake

返回顶部