如何在服务器端获取已加载的javascript代码?
我正在寻找一种方法,将当前加载的js代码发送到服务器,以便使用php将其与原始文件进行比较 例如,我在html中包含test.js脚本。 my test.js内容:如何在服务器端获取已加载的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吗 我希望我足够
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请求将其发送到服务器。用户也可以更改发送到服务器的请求。没有简单的方法可以防止内容篡改,这通常是不值得的