asp.net - 有没有办法阻止来自另一台服务器的查询?
问题描述
我制作了一个 Json Web 令牌来保护我的服务,但现在有人使用我的登录服务对我的数据库进行了很多查询。有没有办法阻止来自另一台服务器的查询?
对我的服务器的查询或攻击来自不同的 ips 和不同的国家。
我使用 Angular 9 和 asp.net 核心。
// POST: api/Login
[HttpPost]
[AllowAnonymous]
public async Task<IActionResult> Login(UsuarioLogin usuarioLogin)
{
var _userInfo = await AutenticarUsuarioAsync(usuarioLogin.Usuario, usuarioLogin.Password);
if (_userInfo != null)
{
return Ok(new { token = GenerarTokenJWT(_userInfo) });
}
else
{
return Unauthorized();
}
}
解决方案
启用 CORS 的三种方法:
- 在使用命名策略或默认策略的中间件中。
- 使用端点路由。
- 使用EnableCors属性。
带有命名策略和中间件的 CORS
public class Startup
{
readonly string MyAllowSpecificOrigins = "_myAllowSpecificOrigins";
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy(name: MyAllowSpecificOrigins,
builder =>
{
builder.WithOrigins("http://example.com",
"http://xxxx.com");
});
});
// services.AddResponseCaching();
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseCors(MyAllowSpecificOrigins);
// app.UseResponseCaching();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
推荐阅读
- python - pdfminer中的dumppdf.py提取pdf轮廓
- amazon-web-services - Elastic Beanstalk 在内存不足后停止
- amazon-web-services - AWS IAM 角色 - 最佳实践
- javascript - 如何在 Highcharts 的 x 轴标签上的整数前面添加撇号?
- r - R中的主题内串行调解
- javascript - MVC 在初始加载时显示初始屏幕的最佳方式
- c - 如何使用指向二维数组C的指针
- c# - 如何在 xUnit 中为类构造函数创建单元测试?
- c++ - 找不到#define 的函数定义
- python - 如何从另一列中减去熊猫中的一列?