正确保护编辑控件免受SQL注入和无意义字符的侵害

Properly protect edit control from SQL injection and nonsense characters

本文关键字:无意义 字符 注入 SQL 保护 确保 编辑 控件      更新时间:2023-10-16

简介及相关信息:

我有一个编辑控件,用户应该在其中输入公司名称。编辑控件支持区域设置

问题:

我希望适当地保护它免受SQL injection攻击和用户输入无意义字符。

我解决问题的努力:

我想在响应WM_CHAR的子类化过程中丢弃冒号分号,并在响应EN_CHANGE时再次执行验证。如果出现问题,我会通知用户并禁用"保存"按钮。

因为我的应用程序是语言环境感知的,所以我需要语言环境感知的函数来测试输入字符。

到目前为止,我发现IsCharAlphaIsCharAlphaNumeric似乎有地区意识(我的英语不是最好的,所以也许我误读了MSDN文档,我为此道歉)。

我也在这里搜索了类似的问题,但没有找到。

问题:

是否丢弃分号只会奏效,还是我需要考虑一些其他字符?

我是否在子类化+ EN_CHANGE的"正确轨道"上,或者有更好的方法来实现这一点?如果有的话,你能给我指出正确的方向吗?

谢谢。

问好。

SQL注入攻击仅发生在使用用户输入动态创建SQL语句而不首先验证/转义输入时。不要动态创建SQL语句!使用参数化查询或存储过程,那么根本没有SQL注入的风险。