如何禁止在IE中输入URL来访问数据提交页面?
我在A页面通过JS添加了一个添加按钮在页面中用$.post("B.aspx",{ID:Id,Naem:name}方式传递给B页面写入数据库。
我怎么样能够防止用户在IE中输入:B.aspx?post&Id=XX&Name=XXX方式提交数据?
如何判断用户在IE中输入参数URL方式提交,如果发现采用这种方式直接给出:非法操作! 不再有任何动作 ?
------解决方案--------------------你采用post方式来提交数据而不采取get方式 C#采用form来获取参数 当querystring获取到参数值时则给非法提示.
------解决方案--------------------加验证码,访问A时才会随机生成一个Session,然后将它也做为参数的一部份传给B,B验证参数是否与Session的值一致
------解决方案--------------------还有一种方式是对参数进行加密,b解密
------解决方案--------------------输入URL方式的提交为GET提交,你指定为POST提交就行了
------解决方案--------------------数据查询就是post参数或者get参数,只用post获取参数呗,如果有get获得值,直接跳转过去。
------解决方案--------------------用图像验证码可以解决自动提交,没别的好方法。
------解决方案--------------------你的B页面不做任何展示,为什么不用handler呢?
------解决方案--------------------B页面可以检查提交方式是否POST。
不过,HTTP协议是没法防止这种请求的,只要协议允许,都可以模拟出来。这个只能做一些校验而不能当作安全手段。比较靠谱的就是检查用户的登录凭据,如果是授权用户爱怎么提交数据都可以吧,只要检查数据本身的合法性就是了。
------解决方案--------------------
可以指定form标签的method属性为post,这样在提交时的方式就为post了 在cs页面中可以通过判断Request.QueryString.Count来判断是否通过get方式提交
------解决方案--------------------
即使是post提交,一样可以模拟出来。
这并不是问题,主要是提交的数据合法就够了。