[英]Properly protect edit control from SQL injection and nonsense characters
我有一个编辑控件,用户应在其中输入公司名称。 编辑控件支持区域设置 。
我希望适当地保护它免受SQL injection
攻击和用户输入无用字符。
我正在考虑在子类化过程中响应WM_CHAR
放弃冒号和分号 ,并响应EN_CHANGE
再次执行验证。 如果出现问题,我会通知用户并禁用“保存”按钮。
由于我的应用程序支持区域设置,因此我需要具有区域设置的功能来测试输入字符。
到目前为止,我发现了IsCharAlpha
和IsCharAlphaNumeric
似乎对语言环境IsCharAlphaNumeric
了解(我的英语不是最好的英语,所以也许我误读了MSDN文档,对此我深表歉意)。
我也在这里搜索了类似的问题,但没有找到。
放弃分号只会解决问题,还是我需要考虑其他一些字符?
我是否在使用子类+ EN_CHANGE
的“正确轨道”上,还是有更好的方法来实现这一目标? 如果可以的话,我可以指出正确的方向吗?
谢谢。
最好的祝福。
仅当您使用用户输入动态创建SQL语句而不先验证/转义输入时,才会发生SQL注入攻击。 不要动态创建SQL语句! 使用参数化查询或存储过程,则完全没有SQL注入的风险。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.