我已经阅读了SQL注入,XSS和其他安全问题,并试图找出如何使用来保护公司的网站。可能危险的文本输入处理
我们即将有一个textarea部署一个简单的“用户反馈”的形式,使用户可以告诉我们如何改善网站以提高他们的用户体验。
当用户在表单上按'提交'时,我们从用户处读取textarea注释,然后以编程方式在该用户的子文件夹中创建一个文件名,并将其注释保存到文件中。然后我们将文件名和路径添加到该用户的数据库记录。
团队并不担心安全问题,但我是。他们的想法是“我们创建文件名,基于任何用户输入,它是0%,并且由于我们将这个'UserX注释'的文件名和路径写入数据库,没有直接的用户影响 - 所以没有风险。”
我关注的不是数据库活动 - 因为他们是对的,用户有什么,我们写信给他们的数据库记录,因为我们刚刚创建自己的文件名并将其存储在自己的数据库记录没有任何作用。
我的问题是文本文件!
所以我上访我们的小团队重写代码使用安全textarea的文本文件读取然后写入用户的评论。
我担心的是 - 因为我们打算实际阅读我们用户的反馈并打开这些文本文件以供以后阅读 - textarea中可能有坏东西(除非我们清理它)会以某种方式伤害我们。
我坚持我们使用strip_tags(),但我需要听取关于我们清理textarea输入的方式的消息 - 我在想strip_tags()是这里的路,但我100%新的消毒用户输入。我查看了htmlspecialchars(),但它只是将某些字符(如'&')转换为& 等等。
是否有其他方式来santize /安全做出的任何文本的用户类型为textarea的我们写出来给我们的Web服务器上的文件之前?
'htmlspecialchars'也将'<' and '>'转换为'<'和'>',这足以防止显示使用输入的任意html。 – kirilloid 2012-03-10 03:23:08
我认为这引发了一个问题:为什么你将这些存储在文本文件而不是数据库中? – 2012-03-10 03:24:59
上午 - 很好的问题 - 因为这是一个100%的新功能,我们不知道它将使用多少,所以现在我们不添加代码和数据库模块来处理安全问题等,但如果在部署它变成一个不常使用的功能,然后将它存储在数据库中可能会更好。 – wantTheBest 2012-03-10 03:29:18