先吐槽一句:valine的源代码简直有毒啊qwq,开局一坨i, j, k, a, b, p, q,含义全靠猜。qwq

我们的目标很简单,就是当用户没有填写昵称和邮箱的时候加一个拦截就行了。

最简单的思路就是找到提交函数,在这之间加一点逻辑判断。

首先把valine.min.js格式化一下,然后可以用chrome浏览器自带的break on调试法找到提交函数。在踩了许多坑之后发现是在861行这里

N = function() {
    u.attr(I, "disabled", !0),
    t.loading.show(!0);
    var e = AV.Object.extend("Comment"),
    n = new e;
    if (v.url = decodeURI(y), v.insertedAt = new Date, R.rid) {

    }

那么只要在这之前加一点判断语句就行了。因为attack这个大菜鸡只会用id选择器获取内容,所以又不得不在源代码添加昵称框和邮箱框那里加了点获取id的代码

最后的代码大概长这样

N = function() {
    var name = $("#vinputnick").val();
    var email = $("#vinputmail").val();
    // alert(1);
    var srt=/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
    if(name == "" || email == "" || !srt.test(email)) {
      alert("请输入昵称和正确的邮箱qwq"); 
        return ;
    }
    u.attr(I, "disabled", !0),

但是!这段代码其实卵用没有,随随便便就可以绕过。。但是小白还是可以防一下的qwq(没办法attack实在太菜了)


一只菜鸡