我一直在寻找一种方法来解决这个问题,但没有成功,我想也许这里有人可以帮忙吗? 我想在我的.Js文件中使用一个秘密密码,但是我不能直接在文件中写入它,因为每个人都可以在访问源代码时看到它。例如,我需要使用ajax将此密码发送到另一个页面,以确保HttpRequest来自我的网站而不是另一个伪造的httprequest。
这是可能的,因为我已经尝试了其他所有认证表单,但没有帮助。
我使用asp.net和HttpHandler作为返回数据的页面。防止伪造HttpRequests
0
A
回答
0
你可以做的是生成密钥使用PHP等,从而有效达到设定时间:
$password = "some random string";
$key = md5($password . $_SERVER['REQUEST_TIME']) . "|" . $_SERVER['REQUEST_TIME'];
你知道什么时候被生成的密钥通过这种方式,如果它被篡改的原因是:
function check($key) {
list($hash, $timestamp) = explode("|", $key, 2);
if ($hash !== md5($password . $key)) {
throw new Exception("Naughty!");
}
if ($timestamp < $_SERVER['REQUEST_TIME'] < 60*60) {
throw new Exception("too old");
}
}
不好的一面是不经常刷新页面的人(在我的例子中是1小时)他们的密钥将过期。
另一个问题是,你的'攻击者'在技术上可能会先刮一个页面来获得一个新的密钥并使用它,并在到期时再次擦除等等。
该解决方案非常适合防止盗链。
0
这是如何完成的in MVC。不幸的是,它看起来并没有像WebForms一样的安全性(至少据我所知)。
相关问题
- 1. 如何防止同一网站伪造?
- 2. 防止跨站点请求伪造
- 3. 防止伪造元素推送内容
- 4. .NET MVC防止伪造的POST
- 5. 防止发布数据伪造
- 6. 使用trigger.io伪造防止缩放
- 7. java - 我如何防止跨站点伪造请求
- 8. 如何通过Ajax post防止跨站点请求伪造?
- 9. 防止Liferay中的跨站点请求伪造
- 10. 防止跨站请求伪造(CSRF)攻击
- 11. 在Rails中防止伪造的测试控制器方法
- 12. 防止跨站点请求伪造攻击
- 13. 防止iOS/Android用户伪造他们的GPS位置
- 14. 防止Azure服务总线的伪造和邮件签名
- 15. Wicket安全防范伪造请求
- 16. 防止伪元素触发悬停?
- 17. $ _SERVER ['SERVER_NAME']是伪造/伪造的吗?
- 18. “伪造” JavaScript构造
- 19. Bootsrap防止打印造型
- 20. 使用cookie而不是会话来防止跨站点请求伪造
- 21. 在Perl调试器中防止模块之间的伪造观察输出
- 22. 如何防止使用Perl和Apache进行跨站点请求伪造?
- 23. 为启用silverlight的WCF服务防止CSRF(或跨网站请求伪造/ XSRF)
- 24. 这是防止跨站点请求伪造(CSRF)攻击的安全方法吗?
- 25. 如何防止伪造的发布到像/不像系统的PHP
- 26. iOS停止随机发送httprequests [钛]
- 27. 防伪错误
- 28. TypeMock伪造DateTime.Parse
- 29. 伪造body.scrollHeight
- 30. mockito - 伪造addObserver
大多数主要平台都包含某种本地防伪令牌。如果我们知道您使用的是什么Web框架,这将有所帮助。 – 2011-04-28 20:50:45
ASP.NET 3.5是你的意思吗? – 2011-04-28 20:52:19