我的网站上有一个PHP页面,该页面从数据库中检索数据以显示在我的网站中。该页面通过AJAX调用。我该如何限制仅从我网站上的页面访问它,以便想要滥用它 而不 从网站(例如从其服务器发布HTTP请求)中获取该数据的用户本身无法这样做?
由于XHR的同源策略,在另一个站点上运行的JavaScript将无法访问您的站点。但是,没有什么能阻止某人构建PHP + CURL脚本来“代理”您的ajax支持的数据,以使其看起来好像在服务器上运行。试图将客户列入黑名单很麻烦,IP地址便宜,免费的HTTP代理很多。
简而言之,您的javascript没有什么特别的。客户可以做任何他想做的事,而你不能强迫他做事,这是“客户站点信任”的基础。黑客可以使用tamperdata甚至是firebug之类的东西来识别HTTP请求,他将能够重播这些请求或使用CURL伪造它们。
您可以尝试混淆您的JavaScript。但是最终,攻击者将只是重播http请求,因此您绝对可以做些事情。