我正在为我的网站构建一个 API,我只希望可以从我自己的网站访问该 API。我构建它的方式是使用 ajax 调用 PHP 文件:
<?php session_start(); ?>
<script>
$.ajax({
type: "GET",
dataType: "json",
url: "secureapi.php",
data: "test="+document.cookie.substring(document.cookie.lastIndexOf('PHPSESSID')).replace(/phpsessid=/gi, '') + "userid=123",
success: function(response){
console.log(response);
}
});
</script>
然后在 PHP 文件中检查它是否是从 xmlhttprequest 调用的,并且它session_id
是正确的:
<?php
session_start();
if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' AND $_POST['test'] == session_id()){
//QUERY DATABASE AND RETURN JSON
}
?>
这是否足够安全,或者有人可以轻松获得session_id
CURL 或其他东西吗?