首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用Jquery.validate.Js和ajax时,还需要进行PHP验证吗?

在使用Jquery.validate.Js和ajax时,还需要进行PHP验证吗?
EN

Stack Overflow用户
提问于 2017-12-26 06:13:21
回答 3查看 103关注 0票数 0

我知道js验证是针对客户端的,而php验证是针对服务器端的。用户可以跳过js验证并提交,但是当我在ajax中获得action php文件时是否可能呢?

我的意思是,我正在使用下面的代码来验证表单。如您所见,我在ajax中调用postProjectAction.php。如果用户跳过js /禁用js并提交表单,表单将不会提交,因为,

  1. 我的表格没有动作
  2. 如果没有调用postProjectAction.php,表单数据将不会被插入或提交到数据库。当用户禁用js时,代码不会调用postProjectAction.php

所以没有机会提交表格。这还不安全吗?

html:

代码语言:javascript
复制
<form id="form_validation" method="POST">
</form>

联合来文验证:

代码语言:javascript
复制
$(document).ready(function() {

    $("#form_validation").submit(function() {
                if ($("#form_validation").valid()) {
                    var data1 = $('#form_validation').serialize();
                    $.ajax({
                        type: "POST",
                        url: "postProjectAction.php",
                        data: data1,
                        success: function(msg) {
                            console.log(msg);
                            $('.messagebox').hide();
                            $('#alert-message').html(msg);
                            $('.messagebox').slideDown('slow');
                        }
                    });
                }
                return false;
            });     
});
EN

回答 3

Stack Overflow用户

发布于 2017-12-26 06:16:28

好的,PHP验证在服务器端,而JQuery在前端。

因此,它基本上取决于需求或需求。

机器人可以中断前端验证,而服务器端验证则比较困难。

总之,进行服务器端验证会使安全性更高:)

票数 1
EN

Stack Overflow用户

发布于 2017-12-26 06:24:17

是的,你的表格仍然不安全。用户不需要禁用JavaScript,甚至不需要提交表单来绕过实现的验证。

只有当表单提交时,您的代码才会进行验证。用户可以简单地将下面的代码粘贴到浏览器控制台,并运行它来发布数据,而无需进行任何验证。

代码语言:javascript
复制
var data1 = $('#form_validation').serialize();
$.ajax({
        type: "POST",
        url: "postProjectAction.php",
        data: data1,
        success: function(msg) {
            console.log(msg);
            $('.messagebox').hide();
            $('#alert-message').html(msg);
            $('.messagebox').slideDown('slow');
        }
    });

这只是可以绕过表单验证的众多方法之一。验证来自客户端的所有数据始终是一个很好的实践。

票数 1
EN

Stack Overflow用户

发布于 2017-12-26 06:26:38

代码语言:javascript
复制
$(document).ready(function() {

    $("#form_validation").submit(function() {
                if ($("#form_validation").valid()) {
                    var data1 = $('#form_validation').serialize();
                    $.ajax({
                        type: "POST",
                        url: "postProjectAction.php",
                        data: {data1:data1},
                        success: function(msg) {
                            console.log(msg);
                            $('.messagebox').hide();
                            $('#alert-message').html(msg);
                            $('.messagebox').slideDown('slow');
                        }
                    });
                }
                return false;
            });     
});

编辑postProjectAction.php

代码语言:javascript
复制
if(!$_POST['data1'] OR !$_POST['blalbla']) header("HTTP/1.0 404 Not Found");
else{Your actions}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47974569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档