17 个解决方案
#1
#2
验证码复杂化,让对方无法分析
限制同一IP发布次数,甚至可以冻结帐号一段时间
发布内容先审核再显示
限制同一IP发布次数,甚至可以冻结帐号一段时间
发布内容先审核再显示
#3
该说的都说了
#4
if(Request.ServerVariables["HTTP_REFERER"]==null)
{
非法提交
}
{
非法提交
}
#5
验证码,记录IP地址根据一段时间内不能重复访问
审核
审核
#6
嗯 验证IP
#7
if (Request.ServerVariables["HTTP_REFERER"] == null || !Request.ServerVariables["HTTP_REFERER"].ToString().Contains(Request.ServerVariables["HTTP_HOST"].ToString()))
{
Server.Transfer("Error.aspx");
}
#8
#9
以上方法我基本上都试过了.限IP有可能会使正常用户也爱到影响
#10
这个可以假冒,没多大意义。。
#11
可以参考图片的防盗链模式
如果请求不是来自身网站 就拒绝访问
如果请求不是来自身网站 就拒绝访问
#12
顶上.这是个值得探讨的问题
#13
7楼的方法并不完整。
假设你的主机是:abc.xxx.com
那么bc.xxx.com 或 c.xxx.com 还是可以递交,因为你的主机头里也包含这两个主机头。
所以这里不能用 Contains 来判断。
另外,bc.xxx.com 或 c.xxx.com 可以通过本地DNS解析得到。
假设你的主机是:abc.xxx.com
那么bc.xxx.com 或 c.xxx.com 还是可以递交,因为你的主机头里也包含这两个主机头。
所以这里不能用 Contains 来判断。
if (Request.HttpMethod.Equals("POST") || Request.HttpMethod.Equals("GET"))
{
string HTTP_REFERER = Request.ServerVariables["HTTP_REFERER"].ToString();
if (HTTP_REFERER != "" && HTTP_REFERER != null)
{
HTTP_REFERER = HTTP_REFERER.Substring(HTTP_REFERER.IndexOf(@"//") + 2);
HTTP_REFERER = HTTP_REFERER.Substring(0, HTTP_REFERER.IndexOf(@"/"));
}
if (HTTP_REFERER != Request.ServerVariables["HTTP_HOST"].ToString())
{
Server.Transfer("Error.aspx");
}
}
另外,bc.xxx.com 或 c.xxx.com 可以通过本地DNS解析得到。
#14
登陆验证.
#15
没有办法,伪造表单,和浏览器一样,无法区分,给提交频繁的使用图片验证。
#16
每个地方接受数据的地方是固定的吧
就判断REFERER吧
或者用其他的校验码
就判断REFERER吧
或者用其他的校验码
#17
帮顶。。
#1
#2
验证码复杂化,让对方无法分析
限制同一IP发布次数,甚至可以冻结帐号一段时间
发布内容先审核再显示
限制同一IP发布次数,甚至可以冻结帐号一段时间
发布内容先审核再显示
#3
该说的都说了
#4
if(Request.ServerVariables["HTTP_REFERER"]==null)
{
非法提交
}
{
非法提交
}
#5
验证码,记录IP地址根据一段时间内不能重复访问
审核
审核
#6
嗯 验证IP
#7
if (Request.ServerVariables["HTTP_REFERER"] == null || !Request.ServerVariables["HTTP_REFERER"].ToString().Contains(Request.ServerVariables["HTTP_HOST"].ToString()))
{
Server.Transfer("Error.aspx");
}
#8
#9
以上方法我基本上都试过了.限IP有可能会使正常用户也爱到影响
#10
这个可以假冒,没多大意义。。
#11
可以参考图片的防盗链模式
如果请求不是来自身网站 就拒绝访问
如果请求不是来自身网站 就拒绝访问
#12
顶上.这是个值得探讨的问题
#13
7楼的方法并不完整。
假设你的主机是:abc.xxx.com
那么bc.xxx.com 或 c.xxx.com 还是可以递交,因为你的主机头里也包含这两个主机头。
所以这里不能用 Contains 来判断。
另外,bc.xxx.com 或 c.xxx.com 可以通过本地DNS解析得到。
假设你的主机是:abc.xxx.com
那么bc.xxx.com 或 c.xxx.com 还是可以递交,因为你的主机头里也包含这两个主机头。
所以这里不能用 Contains 来判断。
if (Request.HttpMethod.Equals("POST") || Request.HttpMethod.Equals("GET"))
{
string HTTP_REFERER = Request.ServerVariables["HTTP_REFERER"].ToString();
if (HTTP_REFERER != "" && HTTP_REFERER != null)
{
HTTP_REFERER = HTTP_REFERER.Substring(HTTP_REFERER.IndexOf(@"//") + 2);
HTTP_REFERER = HTTP_REFERER.Substring(0, HTTP_REFERER.IndexOf(@"/"));
}
if (HTTP_REFERER != Request.ServerVariables["HTTP_HOST"].ToString())
{
Server.Transfer("Error.aspx");
}
}
另外,bc.xxx.com 或 c.xxx.com 可以通过本地DNS解析得到。
#14
登陆验证.
#15
没有办法,伪造表单,和浏览器一样,无法区分,给提交频繁的使用图片验证。
#16
每个地方接受数据的地方是固定的吧
就判断REFERER吧
或者用其他的校验码
就判断REFERER吧
或者用其他的校验码
#17
帮顶。。