小编sta*_*nko的帖子

XSS预防和.innerHTML

当我允许用户将数据作为参数插入JS innerHTML函数时,如下所示:

element.innerHTML = “User provided variable”;
Run Code Online (Sandbox Code Playgroud)

我明白为了防止XSS,我必须进行HTML编码,然后对用户输入进行JS编码,因为用户可以插入如下内容:

<img src=a onerror='alert();'>
Run Code Online (Sandbox Code Playgroud)

只有HTML或只有JS编码才有帮助,因为.innerHTML我理解的方法在将输入插入页面之前对输入进行解码.使用HTML + JS编码,我注意到.innerHTML只解码JS,但HTML编码仍然存在.

但我能够通过双重编码实现相同的HTML.

我的问题是:有人可以提供一个示例,说明为什么我应该进行HTML编码然后进行JS编码,而不是在使用该.innerHTML方法时在HTML中进行双重编码?

javascript xss encoding innerhtml

9
推荐指数
2
解决办法
2万
查看次数

.setinterval 和 XSS

OWASP XSS 预防备忘单中,它说不能将不受信任的数据安全地放入 .setinterval JS 函数中。即使被转义/编码,XSS 仍然是可能的。

但如果我有这样的事情:

setInterval(function(){ alert('<%=UNTRUSTED_DATA%>'); }, 3000);
Run Code Online (Sandbox Code Playgroud)

如果我 JS 编码“UNTRUSTED_DATA”,XSS 怎么可能?

xss setinterval

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

Python:如何以非阻塞方式读取子进程的stdout

我试图创建一个简单的python脚本,启动子进程并监视其标准输出.以下是代码中的代码段:

process = subprocess.Popen([path_to_exe, os.path.join(temp_dir,temp_file)], stdout=subprocess.PIPE)
while True:   
    output=process.stdout.readline()
    print "test"
Run Code Online (Sandbox Code Playgroud)

问题是脚本挂起output=process.stdout.readline()并且该行print "test"仅在子进程终止后执行.

有没有办法读取标准输出并打印它,而不必等待子进程终止?

我开始的子进程是Windows二进制文件,我没有源代码.

我发现了几个类似的问题,但答案只适用于Linux或者我有启动的suprocess的来源.

python standards subprocess output

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

具有“未知”类的机器学习分类算法

我了解,如果我针对苹果,梨和香蕉的样本图片训练ML分类算法,则可以将这三种图片中的新图片分类。但是,如果我提供汽车的图片,它也会将其分类为这三个类别之一,因为它别无选择。

但是,是否有一种ML分类算法能够判断某项/图片是否真的属于该培训对象的任何类别?我知道我可以创建一个“未知”类,并在不是苹果,梨或香蕉的各种图片上对它进行训练,但是我认为训练范围将非常庞大。听起来不太实用。

algorithm

5
推荐指数
2
解决办法
2787
查看次数