【发布时间】:2013-06-19 22:59:46
【问题描述】:
我有一个在很多地方都使用 AJAX 调用的网站,
他们都调用一个文件,称为ajax_agent.php
并使用 GET 变量,例如 ajax_agent.php?action=x&arg1=y&etc=true
但讨厌的用户可以直接使用自定义变量访问 ajax_agent.php。它使用准备好的 PDO 语句,所以我猜没有 sql 注入的危险,但它仍然可以揭示它不应该的东西。
那么有什么方法可以检测客户端是另一个 php 页面(AJAX 处理它)还是实际的浏览器窗口?这样它就会die('you don't have permission to see this page.'); ?
谢谢!
【问题讨论】:
-
使用会话设置用户有权访问的权限
-
请记住,javascript 是一种客户端执行语言。如果 javascript 可以访问资源,那么用户也可以
-
@Musa 好的,但在这种情况下,我不希望任何“用户”浏览该页面。如果它是 AJAX 调用,它应该只回显某些内容。
-
@compid 似乎是合法的。所以,没办法?
-
@Musa — 会话不会在 Ajax 请求和地址栏请求或链接查看源请求之间更改。