在javascript中的控制台错误上发送电子邮件
我对这个问题和链接所做的研究: 代码示例:在javascript中的控制台错误上发送电子邮件,javascript,jquery,ajax,Javascript,Jquery,Ajax,我对这个问题和链接所做的研究: 代码示例: function handleError(evt) { if (evt.message) { // Chrome sometimes provides this $.ajax({ type: "POST", url: "email.php", data: evt.message, success: function(){ $
function handleError(evt) {
if (evt.message) { // Chrome sometimes provides this
$.ajax({
type: "POST",
url: "email.php",
data: evt.message,
success: function(){
$('.success').fadeIn(1000);
}
});
} else {
$.ajax({
type: "POST",
url: "email.php",
data: evt.type,
success: function(){
$('.success').fadeIn(1000);
}
});
}
}
问题)在“email.php”中需要什么类型的验证来确保电子邮件不是恶意的(在可能的范围内),即:是否存在您使用此功能暴露自己的漏洞。
如果javascript中有一种内置机制来更改错误日志的位置,那么这也可以回答这个问题 我假设您将它发送到一个已知的电子邮件地址,所以不需要检查电子邮件
filter_var($email, FILTER_VALIDATE_EMAIL)
然后清除任何使您的电子邮件无法正常运行的数据
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$data = clean_string($data);
之后,去掉html标记以防止发送html(例如,防止发送javascript)
在电子邮件中发送数据应该是安全的。现在请记住,数据尚未安全地发送到sql数据库,如果您将其发送到数据库,请使用准备好的语句,以便数据不能执行任何sql注入。如果您不发送键/值对供
$\u POST
查看,则在php中无法验证。不知道最后一部分关于日志位置的意思是什么
您的意思是引用“如果javascript中有一种内置的机制来更改错误日志的位置,这也可以回答这个问题。”?如果是这样的话,请澄清:我假设javascript中未捕获的错误将进入控制台错误日志。我正在尝试捕获转到此控制台错误日志的错误。这是捕获窗口中发生的未捕获错误事件的唯一函数,还是有其他机制?让我知道这是否澄清了那句话。
$data = strip_tags($data);