webpack-dev-server通过强制执行特定标头值试图减轻哪些安全风险Host?
默认情况下,webpack-dev-server仅允许Host标头指定本地环回地址(localhost、127.0.0.1等)的连接。所有其他主机都会收到此响应:“无效的主机标头”。但当然--allowed-hosts/allowedHosts配置允许扩大此限制。
这似乎仅基于标题Host。我可以使用curl设置自定义Host标头,并且请求成功:
curl -X GET -H "Host: http://0.0.0.0:9001/" http://me.internal.example.com:9001/\nRun Code Online (Sandbox Code Playgroud)\n\n所以我很好奇\xe2\x80\x94 如果allowedHosts不阻止来自curl 或其他自定义用户代理的连接,它解决了什么问题?它似乎只针对使用普通浏览器的普通用户,以保护他们免受在错误主机上提供服务的站点的影响。但是中间人攻击可以轻松代理连接并覆盖主机标头。
为了防止 MITM 攻击,您可以使用 https(带有浏览器信任的证书)。但在这种情况下,证书本身似乎可以缓解 MITM 攻击。
\n\n我确信我遗漏了一些东西,所以任何进一步的解释都是值得赞赏的。
\n很抱歉提出这样的新手问题。
我对网络安全相当陌生。
有人可以向我解释一下,当我可以包含 { username | } 时,为什么我们需要 Web api (REST) 的 JWT 令牌身份验证?每个 API 请求的电子邮件}/密码?
我在项目中设置网络安全,但看到错误。这是错误
org.springframework.beans.factory.BeanCreationException:创建类路径资源中定义的名为“projectingArgumentResolverBeanPostProcessor”的bean时出错[org/springframework/data/web/config/ProjectingArgumentResolverRegistrar.class]:bean实例化之前的BeanPostProcessor失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“metaDataSourceAdvisor”的 bean 时出错:设置构造函数参数时无法解析对 bean“methodSecurityMetadataSource”的引用;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建类路径资源中定义的名称为“methodSecurityMetadataSource”的bean时出错[org/springframework/security/config/annotation/method/configuration/GlobalMethodSecurityConfiguration.class]:通过工厂实例化Bean方法失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.security.access.method.MethodSecurityMetadataSource]:工厂方法“methodSecurityMetadataSource”抛出异常;嵌套异常是java.lang.IllegalStateException:在所有全局方法配置的组合中,实际上没有在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:510)〜[spring-beans]处激活注释支持-5.1.5.RELEASE.jar:5.1.5.RELEASE] 在 org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.5.RELEASE .jar:5.1.5.RELEASE] 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE] 在 org.springframework.beans.factory。 support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE] 在 org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:240 )〜[spring-context-5.1.5.RELEASE.jar:5.1.5.RELEASE]在org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:721)〜[spring-context-5.1.5。 RELEASE.jar:5.1.5.RELEASE] 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:534) ~[spring-context-5.1.5.RELEASE.jar:5.1.5.RELEASE] 在org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142) ~[spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE] 在 org.springframework.boot.SpringApplication 。
我的鳕鱼是:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter{
@Autowired
private Environment env;
@Autowired
private UserSecurityService usersecurityservice;
private BCryptPasswordEncoder passwordencoder(){
return SecurityUtility.passwordEncoder();
}
private static final String[]PUBLIC_MATCHES = {
"/css/**",
"/js/**",
"/img/**",
"/signUp",
"/",
"/newUser",
"/forgetPassword",
"/login",
"/fonts/**",
"/bookshelf/**",
"/bookDetail/**",
"/hours",
"/faq",
"/searchByCategory",
"/searchBook"
};
@Override
protected …Run Code Online (Sandbox Code Playgroud) 我有一个基于 ASP.NET Core 3.1 的 REST API。该API将被其他服务器调用,目前没有客户端应用程序调用该API。
在这种情况下我需要防伪令牌吗?另外,如果需要,如何在服务器到服务器通信场景中注入防伪令牌?
security csrf antiforgerytoken asp.net-core-webapi websecurity
我使用此ajax函数将电子商务网站中的产品插入数据库。
我看到这种方法非常不安全,一些具有编程知识的老练用户可以使用此Ajax并插入产品或其他东西。
我在其他文章中读过,提出了一种解决方案,该解决方案是使用带令牌的隐藏输入字段的解决方案,但是正如我所说的,一些有编程知识的有经验的用户会找到它。
有什么真正的方法可以确保此“添加产品”功能的安全,而无需刷新每个插入页面?
$(document).on('click','#save',function(e) {
var vidArt = $(".imagepreview").attr('value');
$.ajax({
data: {idArt: vidArt},
type: "POST",
url: "classes/add_to_cart.php",
success: function(data){
}
});
});
Run Code Online (Sandbox Code Playgroud) websecurity ×5
security ×2
ajax ×1
csrf ×1
java ×1
javascript ×1
spring ×1
spring-boot ×1
webpack ×1