问题标签 [websecurity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 在 html 编辑器中允许锚标记是否安全?
我在我的应用程序的一个文本区域中允许使用 HTML,现在将在客户端和服务器端验证中阻止某些 HTML 元素和属性。
我想知道允许锚<a>
标记是否明智。我真的需要我的用户能够输入锚点。然而,我正在思考一个坏人对锚标签的所有滥用。
这就是我想出的。
可以使用它执行外部脚本。对于.eg
<a href = " http://external/website/js/function ">虚拟文本</a>
流氓可以简单地从源域中执行我自己的一个 JS 函数。
<a href = "javascript::postMethodByMistakeDeclaredInGlobalScope();">Gotchya!</a>
<a href = "#" onclick = "myobj.myfunction()">虚拟文本</a>
当然,我可以通过确保所有内容都在适当的范围内来缓解 #2,但我只是担心尝试考虑可能发生的所有邪恶事情的好习惯,因此我可能会将它们合并到我的代码/设计中。
还有其他方法可以有人滥用锚标签吗?
java - Web 应用程序控制器 wrt web secuirty 中的参数映射大小验证有什么好处
我有一个 Web 应用程序(Spring MVC),并对控制器中的每个参数进行输入数据验证。不存在的是检查接受的参数映射大小。即当控制器期望 10 个参数并且请求有 11 个或 9 个时。
有人告诉我,检查参数大小以防止任何攻击或注入(即安全性 pov,尤其是参数回火)很重要。这在 ZAP 扫描期间突出显示,其中 ZAP 将新参数查询添加到没有请求参数的 URL。
在我看来,除非有商业原因,否则可以跳过检查大小。应用程序将简单地忽略额外的参数,如果有任何不可接受的参数,输入数据验证将处理它。大小检查不会为安全性增加合理的好处。
我的推理是开发者可能只写了10个参数,但底层框架可以添加更多参数。For-ex Spring MVC 将添加一个参数(csrf 令牌)。框架中的任何升级都可以或多或少地引入这些。
所以现在,问题-当每个参数验证已经到位时检查参数映射的大小是否重要?这样做的真正安全优势是什么?
PS:我没有得到关于安全交换的回应,因此在这里发布。 https://security.stackexchange.com/questions/192569/benefit-of-parameter-map-size-validation-in-web-application-controller
security - 在半私有数据的 URL 中使用 UUID 是否安全?
我经营着一家园林绿化公司,并有多个工作人员。我想为每个人提供一个自定义 URL(如mysite.com/xxxx-xxxx-xxxx
),以显示他们的每日日程安排。转到该页面将列出当天 5-10 位客户的姓名、地址和电话号码。
在半私有数据的 URL 中使用 UUID 是否安全/明智?
php - Php - 通过下载给最终用户访问文件的安全方式?
这更像是一个安全问题,我不确定这种方法是否足够安全可靠地下载文件并呈现给网络用户?
我们将客户发票文件存储在服务器位置(公共无法访问的位置),然后我们通过文件中的 PHP 代码读取它们(在带有文件的公共位置),如下所示,
当然,我们在访问用户之前使用会话对用户进行身份验证,但是如果最终用户知道文件在哪里,他可以操纵他的请求以读取联合国授权的发票。
我只是想知道,如果这种方式
1. 向最终用户展示文件是否足够安全?
2. 最终用户根本不知道文件存储在服务器的什么位置?
3.关于如何处理类似情况的任何其他建议?
java - 根据请求匹配应用不同的身份验证过滤器
在 Spring Boot 2.0.3 应用程序中,我想根据请求路径应用多种身份验证方法。
预期行为
对于请求匹配;
- /静止的/**
- 不要应用任何身份验证过滤器,允许所有
- /安全的/**
- 期望并验证客户端证书
- /api/**
- 通过 HTTP Basic 或 HTTP Digest 进行身份验证
观察到的行为
无论我请求哪个 URL,所有身份验证过滤器始终按以下顺序应用;
- X509AuthenticationFilter
- 基本身份验证过滤器
- CustomDigestAuthenticationFilter
过滤器按预期工作,我使用任何方法进行身份验证都没有问题。但在某些边缘情况下,应用整个 FilterChain 会导致问题,例如,如果 Web 浏览器缓存了 Authorization 标头,则 Web 浏览器不会要求客户端证书。
所以主要问题是;如何将不同的过滤器隔离到其特定的请求域?
更新/编辑
从Spring Security 的多个 url 规则集不一起工作 和Spring Security Reference跟随输入。不幸的是,这种行为也适用于这种方法。
WebSecurityConfig 类
javascript - C#中的Websecurity.Login
我对这段代码有问题:
用户控制器:
网络配置:
在 Websecurity.login 之后,我需要重定向到User/Index/id。当我在网络上查看时,我可以看到这个请求,但是页面视图是旧的。当我按 F5 或转到Home/Index时,我立即被重定向到User/Index/id。
我可以在 Javascript 中做到这一点。登录后我得到了 success = true 并且可以使用更新页面
window.location.refresh()
但我想要一个更好的选择。
security - 弱内容安全策略 (CSP) 会污染同一域中的 Web 应用程序吗?
如果您有以下 Web 应用场景:
https://A.example.com
使用安全的 CSPhttps://A.example.com/next.html
CSP 较弱
第二个是否能够以某种方式破坏第一个,因为它们位于同一个子域上?
如果场景是:
https://A.example.com
使用安全的 CSPhttps://B.example.com
CSP 较弱
第二个是否能够以某种方式破坏第一个,因为它们位于同一个域中?
reactjs - 将谷歌令牌存储在本地存储中是否是一种好习惯
读了几篇文章后我有点困惑,基本上假设你有一个使用 gmail 登录进行身份验证的网络应用程序。将谷歌访问令牌存储在本地存储中并通过标头发送以在后端 API 中进行验证是一种好习惯吗?还是应该使用单独的机制来处理 api 级别的访问?
https - 在 Web 应用程序中如何以及在何处进行加密?
在 Web 应用程序中,密码加密是如何以及在何处发生的?例如,当用户注册一个网站时,用户设置的密码是否以明文形式传输并在服务器端进行加密并持久化在数据库中?
另一方面,当使用 HTTPS 时,数据将被加密并通过网络发送。在这种情况下,我们是否再次对传入的数据应用任何加密算法,然后将其保存在数据库中?我也很想知道通过 HTTPS 传输数据时将使用哪些加密算法。
java - 如何使用 Java 和 XML 配置在 Spring Security 中配置 jdbc 身份验证管理器?
我正在尝试使用 Spring Security 保护 Spring Boot Web 应用程序,但是在配置身份验证管理器时我对级联方法感到困惑。目前,我正在使用内存数据库,其中包含表用户、填充数据的权限。
有没有更简单的方法来为此用例配置身份验证机制?