博主辛苦了,我要打赏银两给博主,犒劳犒劳站长。
【摘要】今天写了一个 XSS 漏洞攻击脚本对我们学校的研究生管理系统进行攻击,我想把被攻击的页面的源代码使用 ajax 发送到我的网站上去供我学习使用,但是发现在传输过程中只传输了一部分的数据,而后面的数据都丢失了,我刚刚开始的时候以为是 ajax 使用 post 传输的数据量是有限的,但是我却发现是以为传输的数据中含有特殊字符导致后面的数据丢失。
本文讲讲如何解决 ajax 使用 post 方法传输的数据中包含 '%'、'+'、'&' 这三类特殊字符的方法。首先需要明白,如果传输的数据中含有这三类字符,则 js 解析的时候并不会将它判断为文本字符,而是会进行解析,所以导致了问题的出现,解决办法是将这三个字符进行字符串编码替换(使用 javascript 正则匹配)。
备注:'+' 被解析为字符串连接符
'&' 被解析成变量连接符
'%' 被解析成什么我暂时也不大清楚,反正就是这三个字符是特殊字符一定要替换的。
完整代码如下:
page_content = page_content.replace(/%/g, "%");
page_content = page_content.replace(/\&/g, "&");
page_content = page_content.replace(/\+/g, "+");
这样就能够解决基本问题了。
版权归 马富天PHP博客 所有
本文标题:《使用 Ajax 进行 post 方法数据传输过程中特殊字符丢失的解决办法》
本文链接地址:http://www.mafutian.net/246.html
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^
顶1
踩1
评论审核未开启 |