关于Sql注入式攻击和有害文字的屏蔽功能如何实现??
首先,我知道Ado.net中的parameter可以屏蔽。
那么我的环境先陈述一下:
环境:
1.我们使用的数据中间层不是Ado这种微软的通用接口,我们使用的别的公司封装好的数据层,但是它没有提供象微软的parameter的方式。具体的方式如下:
select 字段 from 表 where 条件
那么,这个数据接口定义的,我们给出「字段」,「表」,和「条件」,然后它返回数据集。
这样,如果sql注入式攻击的话,就可以在条件这里做文章了。
比如:条件="a='b' and c='" & textbox1.text & "'"
那么在textbox1.text 输入 "' a='%%' or a='"
这样就形成攻击了。
这个好解决。
我们解决方法是: 写个判断可以输入内容的方法,如果有非法字符,我们就返回false。
2.好,现在问题来了,我们程序是分为控件和画面的,这样修改意味这所有的输入控件都要判断是否合法
但是我们想只是在checkdigit(textbox1.text)这样的方式去修正,如果判断了是非法字符,我就想程序不处理下面的任何程序直接跳到最外层,报msg,然后焦点落在输入不合法的控件上。
这样的解决方法有没有,高手给点合适的方法或者想法。
我想通过throw,但是在那个事件中接获,而且画面不要报error,在page_load是不行的。