我是 Owasp 的新手,它是 HTML sanitizer,发现使用我使用的任何策略,它都会将某些实体转义回字符。
例如这个字符串:
@ test !
Run Code Online (Sandbox Code Playgroud)
变成这样:
@ test !
Run Code Online (Sandbox Code Playgroud)
我想尽可能地让实体“保持原样”。如果它正在逃避他们,而不是逃避他们,我什至会理解它。
那么这可以用消毒剂吗?无论我尝试使用什么策略,它似乎都能做到。
这是我为我的简单测试运行的代码:
package com.my.company.test;
import org.junit.Test;
import org.owasp.html.PolicyFactory;
import org.owasp.html.Sanitizers;
import junit.framework.TestCase;
public class OwaspSanitizerTest extends TestCase {
public static final PolicyFactory POLICY = Sanitizers.IMAGES;
@Test
public static final void testTextFilter() throws Exception {
String data = "@ test !";
String result = POLICY.sanitize(data);
System.out.println(result);
assertEquals("@ test !", result);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我问的原因是我希望我的用户输入尽可能匹配我们输出的内容。我知道在某些情况下这是不可能的,但我预计在这种情况下会是这样。
我正在尝试确保来自基于Jersey的java应用程序的所有JSON响应都在其ContentType标头中附加了UTF-8字符编码参数.
所以,如果它是一个JSON响应,我想响应报头的Content-Type
要
Content-Type:application/json; charset = UTF-8
EDIT: I know I can do this on a case by case basis, but I'd like to do it globally, so it affects all content responses that have a content type of "application/json".
如果我只是尝试在我的过滤器中设置字符编码,无论内容类型如何,它都可以正常工作.但是我只想在ContentType为"application/json"时设置字符编码.我发现response.getContentType()方法总是返回null,除非我先调用chain.doFilter.但是如果我在此之后尝试更改字符编码,它似乎总是会被覆盖.
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.ws.rs.core.MediaType;
public class EnsureJsonResponseIsUtf8Filter implements Filter
{
private class SimpleWrapper extends HttpServletResponseWrapper
{
public SimpleWrapper(HttpServletResponse response)
{
super(response);
}
@Override
public String getCharacterEncoding()
{
return "UTF-8";
}
}
@Override
public void …
Run Code Online (Sandbox Code Playgroud) 在ReactJS中是否有办法让组件找出它的父母是谁?
我没有找到一种React方法来实现这一点 - 从我所看到的,我的想法是将回调传递给来自父级的子进程,并且子进程调用回调 - 不知道回调实际是在家长.
我试过设置一个"所有者"属性,这个想法似乎有效,但我想知道什么是最好的方法?
例如
<Parent>
<Child owner={this}/>
</Parent>
Run Code Online (Sandbox Code Playgroud)
然后在子组件中,我可以做owner.method
,它似乎工作正常.我知道这不是真正的父/子关系,但是我在测试中发现的最接近.
有些人可能会说回调是一种更干净的方式,但是在某种情况下(例如RadioButtonGroup和RadioButton)的父/子关系看起来很自然,并且在我看来,会因为知道这种关系而受益.
关于不支持它的想法,我不喜欢的是HTML可以用零javascript标记 - 它暗示了默认功能 - 一些元素需要父母 - 他们被定义为其他元素的子元素(例如ul和li).这在JSX中不可能发生,因为如果元素之间存在交互 - 必须有javascript事件将组件绑定在一起 - 每次使用它们.设计师不能简单地像语法一样编写HTML - 有人必须介入并在其中放置一些javascript绑定 - 这会使维护更加困难.我认为这个想法对于覆盖默认行为是有意义的,但是应该支持默认行为.默认情况下需要了解您的父母或您的所有者.
我在我的java应用程序中实现了基本的OpenID连接流程,它似乎工作正常.
我想使用现有的java库来验证id令牌,详见Salesforce页面上有关实现OpenId connect的详细信息.
是否有任何现有的库可以很好地实现这一点?我已经解析了响应,我只需要找到一些简单的方法来验证id令牌是否有效.
当用户需要批准使用OAuth2进行身份验证的请求时,通常会给出"批准"和"取消"按钮.
当用户点击"取消"时,我应该发送什么?
作为开发人员,当用户点击"取消"时,我会向OAuth服务器发送什么内容以拒绝该请求?
我尝试使用一种grant
"拒绝",但这不起作用.我知道要发送什么来获得批准,但似乎无法看到我应该发送什么来让OAuth服务器响应redirect_uri
用户取消时的错误.
我已经查看了规范和这篇优秀的OAuth2 Simplified文章,但未能看到它.
注意:我没有在任何地方明确详细说明.是否假设我的应用程序应该自行管理?例如,在这种情况下,我的应用只是发布到自己的应用而不是发布到OAuth2服务器redirect_uri
?
{redirect-url}?error=access_denied&error_description=The+user+clicked+deny
Run Code Online (Sandbox Code Playgroud)
如果是这样,这似乎有点奇怪,因为所有实现客户端都必须使用错误代码和原因来构建url.
我想将数据通过管道传输到交互式命令中,并将交互式命令的输出作为另一个命令的输入接收。
例如,我希望能够执行以下操作:
echo "Zaphod" | hello.sh | goodbye.sh
Run Code Online (Sandbox Code Playgroud)
并有输出:
再见,赞福德
这是我对此的初步破解,但我错过了一些东西 ;-) 我实际上希望 hello.sh 从事物列表中进行选择。
你好.sh
echo Please supply your name
read NAME
echo "HELLO $NAME"
Run Code Online (Sandbox Code Playgroud)
再见.sh
MSG=$*
if [ -z "$1" ]
then
MSG=$(cat /dev/stdin)
fi
echo "BYE $MSG"
Run Code Online (Sandbox Code Playgroud)
编辑:通过“从事物列表中选择”,我想我是在暗示我的真实用例,它从标准输出中获取任何东西,让我选择一个选项,然后将其传递给其他东西的标准输入...例如:
ls /tmp | select_from_list | xargs cat
将允许我列出 /tmp/ 中的文件,交互选择一个,然后 cat 文件的内容。
所以我的“select_from_list”脚本实际上是这样的:
#!/bin/bash
prompt="Please select an option:"
options=( $* )
if [ -z "$1" ]
then
options=$(cat /dev/stdin)
fi
PS3="$prompt "
select opt in "${options[@]}" "Quit" ; do …
Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用Zap,并且已成功在Firefox和Chrome中运行它.
我想用它来自动为非https网站提供SSL证书.
所以,例如,我希望它能够服务
如
即使example.com通常不提供SSL证书.
这将允许我测试本地开发站点,而无需为它们创建自签名证书,或者必须使用Web服务器配置证书.
我试图将我的开发端口(18000)移植到端口443,但我的网络服务器没有提供SSL证书,连接失败.我也试过这个与sni终结者 zap插件没有运气,虽然它感觉它是超级接近!
有什么建议?
简介:更新负载平衡群集中的节点的最佳做法是什么?
我们在ha代理负载均衡器后面使用RabbitMQ Cluster来支持我们的客户轻松集群,如RabbitMQ文档中所建议的那样
尽管文档提出了这一点,但它们没有描述从群集中删除节点以进行升级的最佳方法,并将其重新放入.
rabbitmqctl stop_app
在节点本身上运行来从群集中删除节点,并等待它关闭但我已经建议我们首先从ha代理中删除它,基本上交换上面的步骤1和2
rabbitmqctl stop_app
在节点本身上运行来从群集中删除节点,并等待它关闭这是最好的方法吗?
在Java中,我们有一些代码可以获取复杂的java对象并将其序列化为json.然后它将json直接写入页面的标记,在脚本标记中,将其分配给变量.
// Get object as JSON using Jackson
ObjectWriter jsonWriter = new ObjectMapper().writer().withDefaultPrettyPrinter();
String json = jsonWriter.writeValueAsString(complexObject);
// Write JSON out to page, and assign it to a javascript variable.
Writer out = environment.getOut();
out.write("var data = " + json);
Run Code Online (Sandbox Code Playgroud)
复杂对象可以包含最终用户内容,这可能会使我们受到XSS攻击.
如何获取每个json属性HTML转义的复杂java对象的json版本,以防止XSS注入?
我已经阅读了OWASP XSS指南,到目前为止我提出的最好的是HTML,它会转义整个JSON字符串,然后取消引号,因此可以将其分配给javascript中的变量.我确信有更好的方法可以做到这一点,但这似乎有效.有什么建议?
private String objectToHtmlEscapedJson(Object value) {
try {
String result = jsonWriter.writeValueAsString(value);
result = StringEscapeUtils.escapeHtml(result);
result = result.replace(""", "\"");
return result;
} catch (JsonProcessingException e) {
return "null";
}
}
Run Code Online (Sandbox Code Playgroud) 我在一个只用于抓取公共数据的网络爬虫中使用Apache HttpClient.
我希望能够使用无效证书抓取网站,无论多么无效.
我的抓取工具不会传入任何用户名,密码等,也不会发送或接收敏感数据.
对于这个用例,我会抓取http
一个站点的版本,如果它存在,但有时它当然不会.
如何使用Apache的HttpClient完成这项工作?
我尝试了一些像这样的建议,但是对于一些无效的证书,它们仍然失败,例如:
failed for url:https://dh480.badssl.com/, reason:java.lang.RuntimeException: Could not generate DH keypair
failed for url:https://null.badssl.com/, reason:Received fatal alert: handshake_failure
failed for url:https://rc4-md5.badssl.com/, reason:Received fatal alert: handshake_failure
failed for url:https://rc4.badssl.com/, reason:Received fatal alert: handshake_failure
failed for url:https://superfish.badssl.com/, reason:Connection reset
Run Code Online (Sandbox Code Playgroud)
请注意,我已经尝试了这个,我的$JAVA_HOME/jre/lib/security/java.security
文件jdk.tls.disabledAlgorithms
设置为空,以确保这不是一个问题,我仍然得到如上所述的失败.
java ×5
owasp ×2
bash ×1
content-type ×1
facebook ×1
filter ×1
haproxy ×1
jackson ×1
javascript ×1
jersey-2.0 ×1
json ×1
oauth-2.0 ×1
openid ×1
rabbitmq ×1
reactjs ×1
sanitization ×1
xss ×1
zap ×1
zsh ×1