2015-10-02 80 views
3

我的一些Python shell脚本在Apple CapX 10.11下新引发安全错误。看起来,新的App Transport Security不喜欢脚本以纯文本方式调用HTTP资源,而不是使用HTTPS。El Capitan下的Python“应用程序传输安全性”错误

Fetching http://blahblah.com  
Python[5553:5648168] App Transport Security has blocked a cleartext HTTP (http://) 
resource load since it is insecure. Temporary exceptions can be configured 
via your app's Info.plist file. 

我该如何解决这个问题?没有可以调用的HTTPS资源,所以我坚持使用HTTP。 Apple的建议是在应用程序的info.plist文件中创建一个例外,但这是一个从shell脚本调用的Python脚本,因此不需要编辑info.plist文件。

想法?根本问题似乎是在Python中的webkit2png。它的非HTTPS请求被ATS阻止,并且没有info.plist要修改。

回答

1

我发现这里一个解决方案,为我工作:https://apple.stackexchange.com/questions/210588/how-does-one-configure-a-temporary-exception-to-ats-on-el-capitan-and-fix-webkit

首先确保你有一个版本的webkit2png是足够新的有--ignore-ssl-check选项。版本0.5没有这个选项。

其次,你需要编辑的源文件,并添加几行代码如下所示:https://github.com/bendalton/webkit2png/commit/9a96ac8977c386a84edb674ca1518e90452cee88

最后使用选项,如上述(复制在这里为方便起见)链接的解决方案表示:

webkit2png --ignore-ssl-check [options] [http://example/] 
1

感谢亚瑟·赫伯特

起初我感到困惑的代码,然后我弄清楚

所以我总结步骤作为参考如下

  1. import AppKit

  2. 添加以下代码在您的PY脚本 AppKit.NSBundle.mainBundle().infoDictionary()['NSAppTransportSecurity'] = dict(NSAllowsArbitraryLoads = True)

假设你肯定不使用HTTPS资源在MAC OSX高于10.11

webkit2png的安装在我的情况下是不需要的

相关问题