小编rya*_*555的帖子

如何防止人们将HTTP POST循环到函数?

我正在尝试开发一个网站,该网站有一个弹出模式,允许用户订阅我们的最新促销.在该输入中,我们有一个文本框,允许用户键入他们的电子邮件.

但是,当我们查看HTML代码时,HTTP POST URL可见:

在此输入图像描述

如果有人试图使用此URL和垃圾邮件HTTP POST请求(见下文),则可以在subscriber数据库表中创建无限制的条目.

for (int a = 0; a < 999999; a++)
{
    var values = new Dictionary<string, string>
    {
        { "email", a+"@gmail.com" }
    };

    var content = new FormUrlEncodedContent(values);
    var response = await client.PostAsync("http://www.example.com/recepticle.aspx", content);
    var responseString = await response.Content.ReadAsStringAsync();
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能防止这种情况发生?我们不能加盖,因为这是我们促销的订户.

编辑:请注意,ANTI伪造令牌不起作用,因为黑客可以使用GET下载整个HTML字符串,并从防伪令牌文本框中获取值并再次将值POST到POST URL,因此它将无法正常工作并且相同的防伪令牌可以多次使用,这是不安全的.

.net c# asp.net-mvc

5
推荐指数
1
解决办法
112
查看次数

在 ASP.Net Core 中使用 SharedLocalizer 和 javascript

我正在使用 asp.net core 2.0 来开发我的 MVC 应用程序。但是,我在视图中使用了 SharedLocalizer。我使用以下代码注入它:

@using Microsoft.AspNetCore.Mvc.Localization
@using Microsoft.Extensions.Localization
@inject IViewLocalizer Localizer
@inject IStringLocalizer<SharedResources> SharedLocalizer
@inject IHtmlLocalizer<SharedResources> SharedHtmlLocalizer
Run Code Online (Sandbox Code Playgroud)

这就是我调用 SharedLocalizer 的方式:

function updateCommission(agentID) {
    var msg = '@SharedLocalizer["Confirm Update Commission?"].Value.ToString()';
    if (confirm(msg) == false)
        return false;
}
Run Code Online (Sandbox Code Playgroud)

但是,我的结果是这样的: 在此处输入图片说明

如果我在我的 html 标签/输入中使用 SharedLocalizer,它显示正常。当我查看我的页面源代码时,字符串也是 '$#1231';

如何使用我的设置显示正确的字符串?

javascript c# asp.net-core-mvc asp.net-core

2
推荐指数
1
解决办法
1185
查看次数