CGI编程的安全性——文件名

CGI编程的安全性——文件名
文件名提交给数据CGI脚本,但如果不小心,可能会造成很多麻烦。你要打开一个用户名文件,必须严格检查文件泄露给系统的重要文件名。所以为了不吸引用户输入文件名,可以试着打开,比如风险输入字符串!用户输入文件名包含诸如目录路径、斜杠和双点等字符,尽管您的期望是!公共输入文件名:例如report.txt。但它可能是 / / report.txt .. .. / report.txt,所有系统文件可以被泄露出去,后果可以想象。

如果用户输入一个现有文件或对系统的操作是非常重要的部分,比如输入文件名!文件名称是 / /密码等,用户可以修改文件可能被更新时,任何。第二天注册网站,你会发现密码需要修改,然后你只会写信给系统管理员寻求帮助。所以在CGI脚本中确保所有字符都是合法的。
下面的代码可以过滤掉非法字符。

如果(($ file_name = ~ / { ^ a-za-z_ 。} /)| |($ file_name = ~ / ^ , /))
{ #文件包含非法字符。}

最好把上面的代码作为子程序,这样可以反复调用,这样也便于修改。有两种解决方案不允许输入HTML。

1,一个简单的方法是不允许的(小于HTML),因为所有的语法都必须包含在两个字符中,如果它们返回一个错误,就是防止HTML被提交到一个简单的方法中。一行Perl代码快速清除了这两个字符:

user_input美元= ~ / / / S G;

2,更复杂的方法是将这两个字符组合成HTML代码(特殊代码),用于表示每个字符而不使用字符本身。所有LT下面的代码;用GT替换小于符号;替换多于符号,并完成转换:

user_input美元= ~ S / $ user_input = ~ / / / G gt;

tag:编程文件名安全性电脑软件CGI

相关内容