Php 允许跨域ajax请求
在我的项目中,我需要允许其他人向我的脚本发送ajax请求。因此,外部请求可能来自其他网站和域,也可能来自浏览器扩展。Php 允许跨域ajax请求,php,ajax,cross-domain,Php,Ajax,Cross Domain,在我的项目中,我需要允许其他人向我的脚本发送ajax请求。因此,外部请求可能来自其他网站和域,也可能来自浏览器扩展。 我只是在脚本的顶部添加了这两行代码,让他们可以这样做: header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST'); 现在我的问题是:这里有没有我遗漏的安全考虑?这个简单的解决方案会带来严重的问题吗? 如果是这样,更好的解决方案是什么 感谢您的回复。正
我只是在脚本的顶部添加了这两行代码,让他们可以这样做:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
现在我的问题是:这里有没有我遗漏的安全考虑?这个简单的解决方案会带来严重的问题吗?如果是这样,更好的解决方案是什么
感谢您的回复。正如zerkms所说,如果他们只是“转到”您的php页面,他们将能够看到它发出的任何回声如果可能的话(不确定),它还将允许不需要的人创建自己的表单,甚至在本地主机上,并通过AJAX提交表单以获得他们想要的响应。。如果你同意,而且信息不明确/无害。。。那么我想它是“安全的”。获取/传输敏感信息不是一种好方法。如上所述,任何人都可以随时向您的页面发送请求:因此,您需要的主要安全问题是验证用户输入,并且只显示可供公众使用的信息。但这适用于所有脚本 您需要关注的两个主要问题(验证用户输入后)是:
- 脚本设置的cookie和其他标题可能会被忽略
- 这同样适用于会议
- 这对我来说非常有效
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
header("Allow: GET, POST, OPTIONS, PUT, DELETE");
$method = $_SERVER['REQUEST_METHOD'];
if($method == "OPTIONS") {
die();
}
你应该记住,如果你的脚本泄露了任何个人信息,现在任何人都可以窃取。你能解释更多吗?这怎么可能?这些头球有魔力吗?阿里:如果我创建了一个执行ajax请求的页面,给你一个链接并发送给你,那么我就可以从该端点获取任何你可以获取的信息。你希望外部请求访问什么?听起来你应该写一个API。这个脚本提供的信息和
echo()
都不敏感。我想知道是否有更好的解决方案如果它不是“敏感的”,并且是可能的,理论上,除了服务器端通信之外,在没有客户端信息获取的情况下,我看不到更好的解决方案。比如一个ajax调用,它可能会调用您自己服务器上的一个php文件,说php文件会工作,联系其他服务器,并返回结果,就客户端而言,一切都发生在您的端,并且没有第三方参与。请注意用户输入!
private function set_headers() {
header("HTTP/1.1 ".$this->_code." ".$this->get_status_message());
header("Content-Type:".$this->_content_type);
header("Access-Control-Allow-Origin: *");
}
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
header("Allow: GET, POST, OPTIONS, PUT, DELETE");
$method = $_SERVER['REQUEST_METHOD'];
if($method == "OPTIONS") {
die();
}