单一引号是否会导致跨站点脚本攻击,如果可以,请为我提供一个示例?
一个例子是: JavaScript的:警报( '你好') 但我们在这里使用:还有引用。
答案 0 :(得分:2)
我不确定你究竟在问什么,但有些XSS载体包含单引号而且不包括javascript:
。例如:
<IMG SRC= onmouseover="alert('xxs')">
有关一长串示例,请参阅https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet。
答案 1 :(得分:0)
单独引用单引号可以导致XSS吗?不可以。但单引号能够以多种语言终止字符串,例如:SQL。 您引用的单引号是classic example of a SQL Injection vulnerability
There are many possible ways to perform XSS,部分取决于所使用的服务器软件,部分取决于客户端比有时更明智的信任。
XSS代表跨站点脚本。问题是如果有人 - 来自外部来源,在您的控制之外 - 能够将脚本添加到您的网页,那么该脚本将在那里运行,具有一些或所有相关的权限
答案 2 :(得分:0)
是。比较:
alert(
eval(
location.hash.slice(1) // '
// ^
)
);
到
alert(
eval(
'location.hash.slice(1) // '
// ^
)
);
第一个非常脆弱。
答案 3 :(得分:0)
您提到的示例是我所知道的唯一常用方法。在大多数其他情况下,很难使用单引号插入HTML,但不一定是不可能的(至少在少数情况下如此)
例如,双引号:
const customLink = `" onmouseover="alert()"`
const html = `<a href="${customLink}">click here!</a>`
将变为:
<a href="" onmouseover="alert()">click here!</a>
但是,单引号不能结束href
属性(至少据我所知)。因此,注入HTML更加棘手。例如,以下方法会起作用,但可能不是很常见:
const customAttribute = `onmouseover='alert()'`
const html = `<a ${customAttribute}>click`