1

我正在使用 qtwebkit 构建一个 DOM-XSS 扫描器。默认情况下,qtwebkit 会自动对 URL 的查询部分进行 URL 编码/转义。Javascript 获取 URL 编码。

例如,当您访问 URL

http://test.com/?param=value<b>value</b>&a=b

location.href将包含值

http://test.com/?param=value%3Cb%3Evalue%3C/b%3E&a=b

这对我来说是检测 DOM-XSS 漏洞的一个大问题,因为我不知道是浏览器做了编码还是网页做了编码。我正在尝试禁用此功能,但我迷失在 qtwebkit 源代码中。

任何人都可以通过告诉我 URL 编码发生在代码中的确切位置(在哪个文件中)来帮助我,以便我可以修改源代码并重新编译它?

我已经浏览源代码3天了,我没有任何进展。

非常感谢您的任何帮助。

4

2 回答 2

0

我在 Qt5 上也遇到过你的问题,但是 Qt4 没有这个问题。我修改了Qt源代码“qurlrecode.cpp”的静态函数recode这解决了我的问题,但我认为最好在KURL上修改webkit源代码,但是我浪费了一整天后未能在我的机器上成功构建webkit。

于 2014-03-21T16:14:32.887 回答
0

QURL.setEncodedUrl(const QByteArray & encodedUrl) 可以解决

通过.. http://doc.qt.io/qt-4.8/qurl.html#setEncodedUrl

于 2016-11-24T09:26:39.853 回答