我有一个jquery脚本,其中post/get
数据为.php脚本。但我想阻止直接访问PHP脚本。例如,如果用户查看html源代码,他们将能够通过从js文件复制url直接访问php脚本,我不希望那样。我如何防止用户这样做?我希望用户通过html UI使用它。我谷歌,但没有找到这个链接。不过,我注意到一些热门网站能够做到这一点。我该如何去做这个?阻止直接访问jquery的帖子url
回答
这似乎是一个简单的重定向是你在找什么在这里。
将这样的东西添加到您的PHP文件的顶部。这将防止页面被访问,如果没有正确的帖子。当然,您必须更改帖子并将其重定向到与您的项目更相关的内容。
if (!isset($_POST['data'])) {
header('Location: your-redirect-location');
}
您也可以根据$ _SERVER ['HTTP_REFERER']变量重定向。
编辑:我打算在评论中解释这一点,但它太长了。我应该注意到这是一个简单的解决方案。它将防止人们意外访问您的脚本。为你的问题创建一个100%安全的解决方案真的很难,如果有人真的想访问它,他们将能够。如果你在剧本中没有任何安全的话,这将会很好。否则,你将不得不寻找替代品。
tks jim你很容易。我会这样做=) – nuttynibbles 2012-01-31 14:22:04
这里是一个解决方案:
<?php
if(isset($_POST["post_var]))
{
//to the code you want to do when the post is made
}
else
{
//do what you want to do when the user views the post page
}
?>
嘿tomi tks。我的这个 – nuttynibbles 2012-01-31 14:22:33
您的问题与cross site request forgery类似,并具有相同的问题。
为了降低风险,您可以检查请求方法,检查引用者,并检查设置的来源。最好的方法是在服务器上生成一个秘密令牌,以便客户端在每个请求中发回。由于您正在处理有权访问您的实时代码的友好用户,因此他们可能会调试脚本并查找该值,但这只会用于一个会话,并且会非常麻烦。
我该如何阻止用户这样做?
你不能 - 所有你能做的就是减轻风险的人可以与你的脚本拨弄。确保您拥有正确的HTTP_REFERER和/或POST数据在这方面都很有用:“恶意”用户不仅需要将浏览器指向URL,还需要更多内容。使用会话变量
- :
更多的技术可以在这里使用您可能不希望未在登录的用户 - 如果有的话 - 要使用的URL。
- 使用一次性质询(令牌):您可以在HTML页面中放置一个值,并让JS代码和POST请求一起发送该值。生成时将此值存储在会话中。根据会话令牌检查已发布的令牌可确保用户在提交数据之前至少已“看到”HTML页面 - 这对防止重复提交也很有用。
但是,请记住,浏览器可以做的任何事情,人们也可以做到。所有这些技术都可以防止好奇而不是恶意。
所有你能做的就是确保没有人能真正伤害你,在这方面,你的Ajax URL与你网站的任何其他URL没有区别:如果它是公共可访问的,它必须使用任何技术已在其他地方使用 - 会话,用户权限等。
毕竟,为什么要关心用户使用此URL而不使用浏览器?您可能需要根据API调用来想一想,顺便说一下,您的页面恰好使用了。
- 1. 阻止codeigniter中的直接url访问
- 2. 如何阻止子域直接访问
- 3. Laravel阻止直接访问ajax路由
- 4. 阻止用户直接访问页面
- 5. PHP Codeigniter - 阻止直接URL访问表单提交
- 6. 阻止直接URL访问控制器返回partialview?
- 7. 防止直接访问URL的文件?
- 8. 如何防止直接访问URL?
- 9. 直接URL访问
- 10. 更改URL并阻止访问旧URL
- 11. 阻止在Web应用程序中的文件的直接url访问
- 12. 直接从Codeigniter中的URL中阻止访问控制器方法
- 13. mod_rewrite规则:如何阻止直接访问包含特定单词的URL?
- 14. 直接链接的帖子
- 15. 阻止对HTML页面的直接访问
- 16. 使用.htaccess文件阻止对目录的直接访问
- 17. 如何阻止直接访问我的JavaScript文件?
- 18. 我如何阻止直接访问codeigniter中的控制器?
- 19. 用CodeIgniter阻止对index.php的直接访问
- 20. 如何阻止访问者直接访问我的网站中的目录?
- 21. 使用.htaccess或其他方法阻止对子文件夹的直接访问
- 22. 通过URL阻止访问文件
- 23. 阻止用户访问URL php文件
- 24. Facebook应用程序:阻止从域名直接访问
- 25. 阻止用户直接访问jsp文件
- 26. 阻止直接访问.php但允许AngularJS $ http请求
- 27. 如何阻止直接访问Drupal 6网站
- 28. 阻止用户直接访问Struts2操作?
- 29. 使用nginx阻止直接访问php文件(仅重写)
- 30. 阻止通过http直接访问文件,但允许php脚本访问
[防止直接访问PHP页面]可能的重复(http://stackoverflow.com/questions/185483/prevent-direct-access-to-a-php-page) – 2012-01-31 14:11:25