使用HTTP_X_REQUESTED_WITH和SESSION IDS保护REST API

时间:2013-05-09 11:46:52

标签: php javascript ajax rest xmlhttprequest

我正在为我的网站构建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
    }

?>

这是否足够安全,或者有人可以通过CURL轻松获得session_id吗?

0 个答案:

没有答案