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()就足够了,但是需要做些什么来阻止恶意代码.当然,这可能会在您的代码中的其他地方得到处理.

上一篇:javascript – 是否可以触发文件下载到用户的浏览器?


下一篇:调试CGI python