软件开发中缺少安全保证,它提供了镀铬问题,可能包含未注意的漏洞,危害数据的完整性和隐私。今天,我们将探索由Bandit确定的Transe事件安全性,这是Python代码强大的安全水工具,并学习如何纠正它们。
Bandit是一种Python源代码保险工具,可验证您的代码以搜索已知漏洞和潜在的安全威胁。
Python代码
import requests
from flask import Flask, Response
app = Flask(__name__)
@app.route('/')
def home():
json_url = 'http://127.0.0.1:3000'
response = requests.get(json_url)
json_data = response.json()
page = []
for data in json_data:
dia_jogo = f"<h2>{data.get('diaJogo', '')}</h2>"
tabela_html = data.get('content', '')
page.append(dia_jogo)
page.append(tabela_html)
return Response(page)
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
此示例使用框架瓶定义了Web应用程序。当某人访问应用程序的root(“/”)时,它将使用“请求”库将HTTP请求发送到本地服务器(http://127.0.0.1:3000),并获得JSON数据作为答案。然后,他在HTML中格式化了此数据,并将其显示为用户浏览器中的Web糊状物,包括(<h2>)
和表格。当脚本直接执行时,该应用程序在端口5000的“ 0.0.0.0”上执行。
土匪
安装强盗:pip install bandit
fut.py
,示例位于上方的文件的名称。
execu㧣o:bandit fut.py
我们找到了这些火车事件的命令:
事件1:要求
BANDIT确定的第一个漏洞是HTTP请求缺乏超时限制。以我们的方式,so called requests.get(json_url)没有指定的超时,如果服务器不响应,则可能导致性能问题或锁定。为了避免这种情况,您必须为请求定义一个时间限制,如aqui所述。
事件2:烧瓶的暴露
土匪发现的最严重的问题之一是暴露烧瓶的首次亮相模式。在我们的示例中,debug = true配置允许外部访问werkzeug调试器,这可以通过HTTP请求进行任意执行。为了纠正这一点,请确保在生产环境中禁用驱逐模式,如aqui。
事件3:与所有接口结合
确定的最后一个事件是可能与所有网络接口的绑定。在这种情况下,使用主机='0.0.0.0'将应用程序绑定到所有接口的方式,就安全性而言可能是风险的。为了纠正这一点,您必须指定要绑定其应用程序的接口,除此之外,还将使用反向Web服务器来转发烧瓶应用程序的请求,以通过Localhost(127.0.0.1)和在具体的门。讨论了有关此事件的详细信息aqui。import requests
from flask import Flask, Response
app = Flask(__name__)
@app.route('/')
def home():
json_url = 'http://127.0.0.1:3000'
response = requests.get(json_url, timeout=10)
json_data = response.json()
page = []
for data in json_data:
dia_jogo = f"<h2>{data.get('diaJogo', '')}</h2>"
tabela_html = data.get('content', '')
page.append(dia_jogo)
page.append(tabela_html)
return Response(page)
if __name__ == '__main__':
app.run()
包括£o
BUNDIT将提供有关您以您发现的任何保险问题的详细报告。您必须审查这些报告并采取适当的措施来纠正已确定的漏洞。
请记住,匪徒专注于检查Python的特定保险问题,例如任意执行的漏洞(例如,对国家注射),管理层不充分的秘密和其他已知风险。
在接触Bandit确定的这些事件时,您了解到,始终遵循最佳安全持有人的案件和更新。