简介及相关信息:
我有一个编辑控件,用户应该在其中输入公司名称。编辑控件支持区域设置。
问题:
我希望适当地保护它免受SQL injection
攻击和用户输入无意义字符。
我解决问题的努力:
我想在响应WM_CHAR
的子类化过程中丢弃冒号和分号,并在响应EN_CHANGE
时再次执行验证。如果出现问题,我会通知用户并禁用"保存"按钮。
因为我的应用程序是语言环境感知的,所以我需要语言环境感知的函数来测试输入字符。
到目前为止,我发现IsCharAlpha
和IsCharAlphaNumeric
似乎有地区意识(我的英语不是最好的,所以也许我误读了MSDN文档,我为此道歉)。
我也在这里搜索了类似的问题,但没有找到。
问题:
是否丢弃分号只会奏效,还是我需要考虑一些其他字符?
我是否在子类化+ EN_CHANGE
的"正确轨道"上,或者有更好的方法来实现这一点?如果有的话,你能给我指出正确的方向吗?
谢谢。
问好。
SQL注入攻击仅发生在使用用户输入动态创建SQL语句而不首先验证/转义输入时。不要动态创建SQL语句!使用参数化查询或存储过程,那么根本没有SQL注入的风险。