我正在为Android,Windows和iOs创建一个phonegap应用。 该应用程序将使用Post和Get请求从php服务器发布和访问数据。问题是由于跨域请求限制我必须允许使用*。
进行访问控制<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Max-Age: 2000');
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
?>
我知道这是一个很高的安全漏洞。我想知道如何将访问控制仅限于android,windows phone和ios以提高安全级别。 如果有人能帮助我,我将非常高兴。感谢
答案 0 :(得分:1)
您需要在PHP中检查用户代理。每个设备都有自己的用户代理,您可以与之比较。
知道可以欺骗用户代理,因为它也是HTTP头。最好的办法是自己实现某种访问控制,而不依赖于它来自哪个设备。
答案 1 :(得分:1)
为什么不使用Hashing
方法代替Cross Origin
?使用SHA-256
每当您的API触发某个请求时,请包含哈希。
javascript示例。
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/hmac-sha256.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/components/enc-base64-min.js"></script>
<script>
var hash = CryptoJS.HmacSHA256("Message", "secret");
var hashInBase64 = CryptoJS.enc.Base64.stringify(hash);
document.write(hashInBase64);
</script>