我测试的Web应用程序。 我想写一个XSS
脚本,将显示一个警告"Hello"
。
我写的第一个剧本是:
<script >alert("Hello");</script >
但并没有显示警报"Hello"
。 我发现XSS
脚本的工作原理是
<SCRIPT >alert(String.fromCharCode(72,101,108,108,111,33))</SCRIPT >
我想知道为什么第一个脚本没有工作。
我测试的Web应用程序。 我想写一个XSS
脚本,将显示一个警告"Hello"
。
我写的第一个剧本是:
<script >alert("Hello");</script >
但并没有显示警报"Hello"
。 我发现XSS
脚本的工作原理是
<SCRIPT >alert(String.fromCharCode(72,101,108,108,111,33))</SCRIPT >
我想知道为什么第一个脚本没有工作。
最有可能的部位替换HTML实体双引号或试图逃跑他们在这使得它们不适合JavaScript的一些其他的方式。 当使用String.fromCharCode(...)
你没有使用任何引号所以它会工作。 它得到的字符串的字符的ASCII码的列表,并在运行时出他们创建一个字符串。 因此,有没有必要进行任何引用。
避免这种XSS的适当的方式是更换<
与<
- 这样的脚本标记不能创建在所有。
需要注意的是>
, "
和&
也应消毒包含HTML数据时,它们各自的HTML实体更换!不过,只有<
绝对需要打败XSS攻击假设可以在HTML中使用任何不可信的数据属性(这就是"
必须是消毒)