• ADADADADAD

    ajax如何防止sql注入[ 网络知识 ]

    网络知识 时间:2024-12-03 15:10:12

    作者:文/会员上传

    简介:

    ajax防止sql注入的方法:将以下代码放在公用的js里面即可,如:$.ajaxSetup({contentType: "application/x-www-form-urlencoded;charset=utf-8",beforeSend: function() { //发送

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    ajax防止sql注入的方法:

    将以下代码放在公用的js里面即可,如:

    $.ajaxSetup({

    contentType: "application/x-www-form-urlencoded;charset=utf-8",

    beforeSend: function() { //发送前执行的函数

    try {

    /**

    * 当 processData: false,此时后台接收的值都会是object类型。此时应该把所有参数拿出来做成序列化形式 如:"name=bill&age=18" 否则后台无法接收

    * 当 processData: true或者不设置时 json数据是已经序列化成字符类型 。如:"name=bill&age=18"。应用以下方法;

    */

    //var params = arguments[1].data;

    //if (params !== "" || params !== null) {

    // var re = /select|update|delete|truncate|join|union|exec|insert|drop|count|’|--|"|=|;|>|<|%/i;

    // params.split('&').forEach(function (item) { //js的forEach()方法

    // item = item.split("=");

    // var name = item[0];//名称

    // var val = item[1];//值

    // if (re.test(item[1])) {

    // alert("请勿输入非法字符");

    // arguments[0].abort(); //终止请求

    // //请求方法记录相关日志

    // //location.href = arguments[1].data.replace(sQuery, "");

    // }

    // });

    //}

    var params = arguments[1].data; //arguments是一个两个值的数组分别是0和1

    re = /select|update|delete|truncate|join|union|exec|insert|drop|count|’|--|"|=|;|>|<|%/i; //可以根据需求自定义加减

    for(var key in params) {

    console.log(params[key]);

    if(re.test(params[key])) {

    alert("请勿输入非法字符");

    arguments[0].abort(); //终止请求

    //请求方法记录相关日志

    //location.href = params.replace(sQuery, "");//跳转到某个页面

    }else{

    //加密在此处做。后台可以做全局统一解密

    //此时应该把所有参数拿出来做成序列化形式 如:"name=bill&age=18" 否则后台无法接收

    }

    }

    } catch(e) {

    console.log(e);

    //请求方法记录相关日志

    }

    },

    complete: function(XMLHttpRequest, textStatus) {

    try {

    //通过XMLHttpRequest取得响应头,sessionstatus,

    //var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus");

    //if(sessionstatus == "timeout") {

    //如果超时就处理 ,指定要跳转的页面(比如登陆页)

    //}

    //此处可以对响应回来的数据进行解密

    debugger;

    if(textStatus !== "error") {

    //通过XMLHttpRequest取得响应结果

    var res = XMLHttpRequest.responseText;

    var jsonData = JSON.parse(res);

    console.log(jsonData);

    if(jsonData.state == -1) {

    //如果超时就处理 ,指定要跳转的页面(比如登陆页)

    alert(jsonData.msg);

    window.location.replace("/login/index.php");

    } else if(jsonData.state == 0) {

    //其他的异常情况,给个提示。

    alert(jsonData.msg);

    } else {

    //正常情况就不统一处理了

    }

    }

    //请求方法记录相关日志

    } catch(e) {

    console.log(e);

    //请求方法记录相关日志

    }

    },

    error: function(jqXHR, textStatus, errorMsg) { // 出错时默认的处理函数

    try {

    // jqXHR 是经过jQuery封装的XMLHttpRequest对象

    // textStatus 可能为: null、"timeout"、"error"、"abort"或"parsererror"

    // errorMsg 可能为: "Not Found"、"Internal Server Error"等

    // 提示形如:发送AJAX请求到"/index.html"时出错[404]:Not Found

    alert('发送AJAX请求到"' + this.url + '"时出错[' + jqXHR.status + ']:' + errorMsg);

    //请求方法记录相关日志

    } catch(e) {

    console.log(e);

    //请求方法记录相关日志

    }

    },

    statusCode: { //自定义返回消息

    404: function() {

    alert('数据获取/输入失败,没有此服务。404');

    },

    504: function() {

    alert('数据获取/输入失败,服务器没有响应。504');

    },

    500: function() {

    alert('服务器有误。500');

    }

    },

    processData: false, //默认不序列化参数//dataFilter:对响应的数据进行过滤

    });

    ajax如何防止sql注入.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: sql注入AJAX