我在Python中使用这个语句
jsonreq = json.dumps({'jsonrpc': '2.0', 'id': 'qwer', 'method': 'aria2.pauseAll'})
jsonreq = jsonreq.encode('ascii')
c = urllib.request.urlopen('http://localhost:6800/jsonrpc', jsonreq)
在这里,当我执行代码质量测试时,我得到了这个警告/错误
Audit url open for permitted schemes. Allowing use of "file:" or custom schemes is often unexpected.
我想这就是你需要的
因为我偶然发现了这个问题,而公认的答案对我来说并不适用,所以我自己研究了这个问题:
为什么urlib存在安全风险
urlib不仅打开http://或https://url,还打开ftp://和文件://。 有了这一点,就有可能在执行机器上打开本地文件,如果要打开的URL可以被外部用户操纵,这可能会带来安全风险。在
如何修复
您自己负责在使用urllib打开URL之前验证它。 E、 g
如何解决这个问题,使皮棉(例如bandit)不再抱怨
至少bandit有一个简单的函数调用黑名单。只要使用urllib,linter就会发出警告。即使您确实验证了上面所示的输入。(甚至使用硬编码的url)。在
在行中添加
#nosec
注释以禁止bandit发出的警告,或查找linter/代码检查器的suppression关键字。最好的做法是添加额外的注释,说明为什么您认为这不值得在您的案例中给出警告。在相关问题 更多 >
编程相关推荐