我有一个非 jQuery ajax 函数:
function callAjax(){ //will be sent to node server
var xmlhttp;
// compatible with IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
canAjax = true;
//do something
}
}
xmlhttp.open("GET", "string", true);
xmlhttp.send();
}
以及调用它的函数:
function a(){
if(mouseIdle && canAjax){
callAjax()
}
}
这是我向客户提供的 api,其中包含以下内容:
<script src = "mysrc">
问题是,任何人都可以轻松删除这些如果他们愿意的话(包括他们的客户),而我无法找到一种方法使其不可编辑,或者至少可以预防。我只是想让我的 javascript 代码从内部不可触及,怎么办?
最佳答案
就像 Quentin 所说,你无法在客户端控制 JavaScript,这就是网络的工作原理。
您可以使用 token 实现一个简单的身份验证系统。
您的 token 应该是难以猜测的东西,以阻止暴力攻击,例如当前时间的 SHA256 哈希值。 sha256 的空哈希如下:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
然后您可以将此 token key 保存在您的数据库(MongoDB、MySQL 或其他)中,并且您需要强制您的客户端在其发出的每个请求中发送其 token 。
此后,您只需验证该 key 的使用配额并决定是否应该提供服务。
关于javascript - 可编辑的 javascript 和 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36311021/