如何将JavaScript注入解析URL的internet论坛

如何将JavaScript注入解析URL的internet论坛,javascript,html,regex,xss,code-injection,Javascript,Html,Regex,Xss,Code Injection,假设情景 有一个interenet论坛,在这里输入匹配为URL的正则表达式,例如 http://somesite.com 一旦提交,将成为论坛帖子HTML中的链接。因此,上面的链接变为 <a href="http://somesite.com">http://somesite.com</a> 关键是我需要得到这个表达式 javascript:(function(){alert('Yo, dawg');}()) 执行等效操作,但被解析器识别为URL。我怎么能做到?是否

假设情景

有一个interenet论坛,在这里输入匹配为URL的正则表达式,例如

http://somesite.com
一旦提交,将成为论坛帖子HTML中的链接。因此,上面的链接变为

<a href="http://somesite.com">http://somesite.com</a>
关键是我需要得到这个表达式

javascript:(function(){alert('Yo, dawg');}())
执行等效操作,但被解析器识别为URL。我怎么能做到?是否有某种方法可以使用转义字符、unicode或其他东西来实现此目的?

不确定这是否是您所要求的

HTML:

<div id="test">
    http://www.example.com<br>
    http://google.com<br>
    google<br>
    object.property<br>
    http://www.ex-am-ple.com<br>
    www.test<br>
    http://text
</div>
var div = document.getElementById("test");
var divContent = div.innerHTML;
div.innerHTML = divContent.replace(/http:\/\/(.*)\.(\w+)/g, '<a href="//$1.$2" target="_blank" onclick="javascript:(function(){alert(\'Yo, dawg\');}())">$1.$2</a>');

http://www.example.com
http://google.com
谷歌
对象属性
http://www.ex-am-ple.com
www.test
http://text
JS:

<div id="test">
    http://www.example.com<br>
    http://google.com<br>
    google<br>
    object.property<br>
    http://www.ex-am-ple.com<br>
    www.test<br>
    http://text
</div>
var div = document.getElementById("test");
var divContent = div.innerHTML;
div.innerHTML = divContent.replace(/http:\/\/(.*)\.(\w+)/g, '<a href="//$1.$2" target="_blank" onclick="javascript:(function(){alert(\'Yo, dawg\');}())">$1.$2</a>');
var div=document.getElementById(“测试”);
var divContent=div.innerHTML;
div.innerHTML=divContent.replace(/http:\/\/(.*)\.(\w+)/g');

不,除非你知道他们使用什么正则表达式来解析。我假设他们使用的是服务器端正则表达式?@hjpotter92为了讨论,假设它是
/^(https?:\/\/)?([\da-z\.-]+)\([a-z\.]{2,6})([\/\w\.-]*)*\/$/
,那么这是一个可以解决的问题吗?如果你已经知道正则表达式,您可以自己使用解析器来测试它!在regex101.com上测试这个模式看看这个模式,我认为你做不到。该模式不接受
javascript:
部分。