Python应用程序中是否需要“cgi.escape”?
作者:互联网
正在查看开发人员的代码.他在Python应用程序中做过我以前从未见过的事情.他的背景是PHP,只是学习python,所以我不知道这是否可能是他习惯使用的不同系统架构的延续.
他告诉我,此代码的目的是防止用户通过代码插入攻击应用程序.我很确定这对我们的用例来说是不必要的,因为我们从不将数据作为代码进行评估,但我只是想确认并询问社区.
# Import library
from cgi import escape
# Get information that the client submitted
fname = GET_request.get('fname', [''] )[0]
# Make sure client did not submit malicious code <- IS THIS NECESSARY?
if fname:
fname = escape(fname)
>这在Python应用程序中通常是必需的吗?
>在什么情况下有必要?
>在什么情况下没有必要?
解决方法:
如果用户输入进入数据库,或者其他任何地方可能被执行,那么代码注入可能是个问题.
This问题询问有关在PHP中阻止代码注入的方法,但原理是相同的 – 包含恶意代码的SQL查询被执行,可能会执行删除所有数据的操作.
escape函数转换<,>和&字符转换为html安全序列.
从这两个链接看起来它看起来不像escape()就足够了,但是需要做些什么来阻止恶意代码.当然,这可能会在您的代码中的其他地方得到处理.
标签:python,code-injection,cgi 来源: https://codeday.me/bug/20190729/1570130.html