如何清理GET和POST中的传入值以防止python3cgiscrip注入代码

2024-04-25 18:02:18 发布

您现在位置:Python中文网/ 问答频道 /正文

环境:

  • 运行在linux box上的Apache2
  • Python3用于CGI

最终用户将得到一个附加了auth代码的URL e、 g

example.com/cgi-bin/index?auth=sdfhsaFDSs34Ddf3

index是一个python3脚本,它提取auth值与数据库进行比较,然后返回一个文件(此处未显示)

#!/usr/bin/env python

# Turn on debug mode
import cgi, cgitb

#cgitb.enable()
OUTDIR="/var/www/test/"
cgitb.enable(display=0, logdir=OUTDIR)

# Create instance of FieldStorage
form = cgi.FieldStorage()

# Get data from fields
auth = form.getvalue('auth')

# Print required headers
print("Content-Type:text/html;charset=UTF-8")
print()
print(f"auth= {auth}")
print(f"length of auth= {len(auth)}")

在浏览器中粘贴URL的用户可以根据需要操纵auth的值。如果他们修改它来包含特殊字符 e、 g

example.com/cgi-bin/index?auth=asdfsad#$%@@243

脚本将只打印

auth= asdfsad length of auth= 7 

我不知道剩下的会怎么样。我想这是一个编码的东西。但更重要的是,我想知道如何安全地检索auth值,以便在处理它时不会出现脚本崩溃、缓冲区溢出或代码注入的风险。你知道吗

谢谢你。你知道吗


Tags: of代码脚本comauthurlindexbin