0

简介及相关资料:

我有一个编辑控件,用户应该在其中输入公司名称。编辑控件是区域感知的。

问题:

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

我为解决问题所做的努力:

我正在考虑丢弃colon,并semicolon在我的子类化过程中响应WM_CHAR,并再次执行验证响应EN_CHANGE。如果出现问题,我会通知用户并禁用“保存”按钮。

由于我的应用程序是区域设置感知的,因此我需要区域设置感知函数来测试输入字符。

到目前为止,我已经找到IsCharAlpha并且IsCharAlphaNumeric似乎知道区域设置(我的英语不是最好的,所以也许我误读了 MSDN 文档,对此我深表歉意)。

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

问题:

丢弃semicolon只会起到作用,还是我需要考虑其他一些角色?

我是在子类化+的“正确轨道”上EN_CHANGE还是有更好的方法来实现这一目标?如果有你能指出我正确的方向吗?

谢谢你。

此致。

4

1 回答 1

1

只有当您使用用户输入动态创建 SQL 语句而不首先验证/转义输入时,才会发生 SQL 注入攻击。不要动态创建 SQL 语句!使用参数化查询或存储过程,则完全没有 SQL 注入的风险。

于 2014-03-20T03:54:34.610 回答