当前位置:  开发笔记 > 数据库 > 正文

你验证了你的URL变量吗?

如何解决《你验证了你的URL变量吗?》经验,为你挑选了1个好方法。

当您使用GET请求通过您的站点传递变量时,您是否在使用它们之前验证它们(正则表达式,过滤器等)?

假设您有网址http://www.example.com/i=45&p=custform.你知道"i"将永远是一个整数,"p"将始终只包含字母和/或数字.是否值得花时间确保没有人试图操纵值然后重新提交页面?



1> Alf..:

是.毫无疑问.绝不相信用户输入.

为了改善用户体验,可以在客户端上验证输入字段(以及恕我直言).这可以抢先到服务器的往返,只会导致相同的表单和错误消息.

但是,必须始终输入在服务器端验证因为用户只需在GET URL中手动更改输入数据或发送精心设计的POST数据.

在最糟糕的情况下,最终可能会出现SQL注入,甚至更糟糕的是XSS漏洞.

大多数框架已经有一些内置的方法来清理输入,但即使没有这个,通常很容易使用常规异常和查找表的组合来清理输入.

假设你知道它是一个整数,使用int.Parse或者匹配正则表达式"^\d + $".

如果它是一个字符串并且选项有限,请创建一个字典并通过它运行字符串.如果没有匹配,请将字符串更改为默认值.

如果它是用户指定的字符串,则将其与严格的正则表达式匹配,例如"^\w + $"

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有