我想在发送 AJAX 请求之前清理表单字段以增加安全性。目前我的Javascript代码如下:
jQuery(document).ready(function($) {
$('#login-form').submit(function(e) {
e.preventDefault(); // stop the form from submitting the normal way
var form = $(this);
var data = {
'action': 'login',
'username': form.find('#username').val(),
'password': form.find('#password').val(),
'remember': form.find('#remember').val(),
'nonce': form.find('input[name="nonce"]').val()
};
$.ajax({
type: 'POST',
url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
data: data,
success: function(response) {
if (response.success) {
location.reload();
} else {
$('#login-form-message').html(response.data.message);
}
}
});
});
});
我正试着像这样清理输入字段,我是一个初学者,我不完全确定我在做什么。有人能提供一个提示吗?我感谢任何回应,谢谢。
var sanitize = require('sanitize-html');
jQuery(document).ready(function($) {
$('#login-form').submit(function(e) {
e.preventDefault(); // stop the form from submitting the normal way
var form = $(this);
var username = sanitize(form.find('#username').val());
var password = sanitize(form.find('#password').val());
var remember = sanitize(form.find('#remember').val());
var nonce = sanitize(form.find('input[name="nonce"]').val());
var data = {
'action': 'login',
'username': username,
'password': password,
'remember': remember,
'nonce': nonce
};
$.ajax({
type: 'POST',
url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
data: data,
success: function(response) {
if (response.success) {
location.reload();
} else {
$('#login-form-message').html(response.data.message);
}
}
});
});
});
1条答案
按热度按时间zvms9eto1#
医生:不要。
“清理”本身并不是一个有用的术语。如何清理数据取决于:
你没有告诉我们这些,所以我们不能告诉你如何处理数据。
但是,这并不重要,因为您是在询问如何在客户端上执行此操作。
如果您想在数据插入HTTP请求之前保护数据(这样请求正文就可以无错误地解析),那么
$.ajax
已经为您做了。如果您想在PHP处理数据之前保护数据,那么尝试在客户端上进行保护是完全错误的,因为攻击者可以绕过您的客户端代码并向服务器提交他们想要的任何内容。
由于您必须在服务器上执行此操作,因此: