javascript - 可编辑的 javascript 和 Ajax

标签 javascript ajax node.js

我有一个非 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/

相关文章:

node.js - 只读时忽略 Mongoose 模式

arrays - NodeJs笔记应用程序删除功能不起作用?

javascript - window.setInterval() 的 dojo.hitch() 范围

javascript - knockout : Needing to format observable values (decimal)

javascript - chrome扩展无法读取未定义的属性 'currentScript'

javascript - JQuery 和评估

javascript - jQuery 插件中的 If 语句

javascript - 变量作用域和 javascript 执行上下文

php - jquery中的ajax请求什么时候认为http post请求成功?

javascript - 我在 Node js api 中收到 ERR_STREAM_WRITE_AFTER_END 。如何解决这个问题?