Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在服务器端获取已加载的javascript代码?_Javascript_Php_Ajax - Fatal编程技术网

如何在服务器端获取已加载的javascript代码?

如何在服务器端获取已加载的javascript代码?,javascript,php,ajax,Javascript,Php,Ajax,我正在寻找一种方法,将当前加载的js代码发送到服务器,以便使用php将其与原始文件进行比较 例如,我在html中包含test.js脚本。 my test.js内容: function test() {alert('test')} 但是想象一下,有人试图通过使用任何web开发人员工具来修改此代码 function test() {alert('cheat')} 所以我想发送到服务器的代码就是这个,然后我可以用php比较一下,看看是否一切正常。 我可以使用web开发者工具更改js吗 我希望我足够

我正在寻找一种方法,将当前加载的js代码发送到服务器,以便使用php将其与原始文件进行比较

例如,我在html中包含test.js脚本。 my test.js内容:

function test() {alert('test')}
但是想象一下,有人试图通过使用任何web开发人员工具来修改此代码

function test() {alert('cheat')}
所以我想发送到服务器的代码就是这个,然后我可以用php比较一下,看看是否一切正常。 我可以使用web开发者工具更改js吗

我希望我足够清楚。 提前感谢。

下面是一个简单的示例(全部在一个文件中),说明如何在使用原始函数之前延迟加载它们

<?php
if(isset($_REQUEST['getjs'])){
    echo "myFunctions.test = function (){alert('test');}";
    exit;
}
?><html>
<head>
    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script>
    // method/function holder
    var myFunctions = {};
    </script>
    <!-- load functions -->
    <script src="js.php?getjs=true"></script>
</head>
<body>
<script>
    //original 
    myFunctions.test();//Alert:test
    //manipulation
    myFunctions.test = function (){alert('cheat');};
    myFunctions.test();//Alert:cheat
    //get original again, we use Math.random to prevent cache
    $.getScript('js.php?getjs=true&ui='+Math.random())
     .done(function( script, textStatus ) {
        //run original again
        myFunctions.test();//Alert:test
    });
</script>
</body>
</html>

发送到服务器的代码也可能是伪造的:您应该始终清理和验证任何用户输入-以防有人这样做。不要信任用户输入-我不认为您可以访问被操纵的javascript代码(通过开发控制台更改)。现在有一种方法可以在javascript中获取更改后的代码,并通过enxt请求将其发送到服务器。用户也可以更改发送到服务器的请求。没有简单的方法可以防止内容篡改,这通常是不值得的