javascript - Ajax 安全性和代码隐藏功能

标签 javascript jquery .net ajax

编辑:我知道你永远不应该相信客户端...我的问题是我可以用什么来验证,因为目前我期望三个参数,其中两个依赖于客户端侧面表格(注册电子邮件和电子邮件消息)

我可能会以错误的方式处理这个问题,但看起来 Ajax 不是很安全(嗯,呃..它是客户端..)你会如何创建一个函数,以便它不能通过控制台调用被入侵者入侵?

假设我有一个名为 SendMail 的函数,它接受 to、message 和 from 参数,并在其中向后面的代码发送 ajax 请求以发送电子邮件。

我可以添加什么来阻止您打开控制台、重新创建我的函数(除了文字变量)并通过控制台执行它?

背后代码:

<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)>
Public Shared Sub sendMail(subject As String, userEmail As String(), message As String)
    Dim fromEmail As String = "supah@domain.com"
    Dim fromAbrv As String = "hidden Tiger"
    Try
        Dim mail As New MailMessage()
        Dim smtp As New SmtpClient("server.domain")
        mail.From = New MailAddress(fromEmail, fromAbrv)
        For i As Integer = 0 To userEmail.Length - 1
            mail.[To].Add(userEmail(i))
        Next
        mail.Subject = subject
        mail.Body = message
        mail.IsBodyHtml = True
        smtp.Send(mail)
    Catch exc As Exception
        Throw exc
    End Try

End Sub

最佳答案

您不能相信您的客户端代码会阻止客户端执行任何操作。永远不要相信客户。将每个请求都视为被篡改和恶意的。

即使您设法“保护”该功能,攻击者也可以伪造整个请求。

在服务器端验证您的参数。

关于javascript - Ajax 安全性和代码隐藏功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22820437/

相关文章:

javascript - AJAX 填充文本框不起作用

javascript - 关闭 colorbox 并将父窗口重定向到特定的 url

jquery - Rails 3.1 - 需要显示带有字段内容的 JS 弹出窗口 - 可以轻松完成吗?

c# - 使用反射在某些操作系统上使用命名空间

javascript - 如何让浏览器看到 CSS 和 Javascript 的变化?

javascript - 如何为数组中的 $all 形成 Mongoose 查询

javascript - 观察 div 何时隐藏或显示

.net - 追踪 UI 绑定(bind)错误

.net - 如何从标准的非托管非 .NET 应用程序调用 C++/CLI (.NET) DLL?

javascript - 动态改变jquery变量