1

我在 HTML 中创建了一个表单,当单击提交按钮时,onclick事件调用以下函数:

function ProcessSubmition(){

   var stringEmailBody=BuildEmailBody();

   var stringTo=document.getElementById("SubmittersEmail").value;

   var stringSubject = "My Subject Text";

   window.location.href = "mailto:"+stringTo+"?subject="+stringSubject+"&body="+stringEmailBody;

}

我的项目有两个要求:

  1. 我们的服务器上不允许使用 PHP。
  2. 填写表格的人不得编辑包含计算价格的数据。

问题:

当功能启动时,会出现邮件客户端窗口并显示该功能构建的消息,用户必须单击邮件客户端窗口中的“发送”按钮。
不幸的是,在用户点击发送之前,他们可以简单地将计算出的价格更改为较低的美元金额,这显然是不可接受的。

有没有办法隐藏邮件客户端窗口并自动发送?或者,我可以使用其他任何方法来解决问题吗?

谢谢你能给我的任何帮助。

4

1 回答 1

1

简短的回答:没有

在浏览器上下文中运行的 JavaScript 代码是可以由最终用户操作的客户端代码。因此,您永远不应依赖客户端代码来执行任何敏感操作。

基本上,您将需要一些服务器端支持来完成您想要实现的目标,否则它永远不会安全。现在,如果用户篡改您的代码对您来说是危险的,那么如果您的代码可以在未经任何形式批准的情况下代表他们执行诸如发送电子邮件之类的任务,那么对他们来说也是危险的。

即使您可以像您要​​求的那样直接与邮件客户端对话并自动发送电子邮件,也没有什么可以阻止用户编辑生成消息的 JavaScript 源并更改消息内容。

选择?如果您永远无法使用任何服务器端技术,也许您可​​以简单地通过电子邮件发送表单详细信息,然后在另一个过程中进行定价计算。

于 2013-04-26T13:47:54.130 回答