我希望每当我的文本区域发生变化时创建一个Ajax请求,我的后端使用PHP而且我不确定编写Ajax请求和PHP方面的最佳方法是什么,以防止任何滥用,因为有人可能只是开始垃圾邮件textarea,这可能会对我的网站创建一个DoS,因为所有的Ajax请求最终都会访问数据库。
当我使用Ace代码编辑器时,我有JS代码来检测何时发生更改,因此我的代码如下所示:
codeEditor.getSession().on('change', function(e)
{
});
目前这是我的Ajax脚本:
// Variable to hold request
var request;
// Prevent default posting of form - put here to work in case of errors
event.preventDefault();
// Abort any pending request
if (request) {
request.abort();
}
// setup some local variables
var form = $(this);
// Serialize the data in the form
var serializedData = form.serialize();
// Fire off the request to /form.php
request = $.ajax({
url: form.attr("action"),
type: "post",
data: serializedData
});
// Callback handler that will be called on success
request.done(function (response, textStatus, jqXHR)
{
// This is where I would say "Saved"...
});
// Callback handler that will be called on failure
request.fail(function (jqXHR, textStatus, errorThrown)
{
// Log the error to the console
console.error("The following error occurred: "+ textStatus, errorThrown);
});
$这基本上是在Ajax脚本之前获得的表单的ID ...
我还能做什么/我可以做什么/改善前端和后端的请求,以防止滥用垃圾邮件发送文本区域,如果还有什么我应该添加到这个安全性?注意:我已经在其他地方整理了CSRF保护,所以这不是问题。