哪种类型的输入最不容易受到跨站点脚本(XSS)和SQL注入攻击.
PHP,HTML,BBCode等我需要知道我正在帮助朋友设置的论坛.
我正在尝试构建一个bbcode解析器,但是我在解决如何避免过于广泛匹配时遇到了一些问题.例如,我想实现[list]转换为这样的转换:
\[list\](.*)\[/list\]
Run Code Online (Sandbox Code Playgroud)
将被替换为:
<ul>$1</ul>
Run Code Online (Sandbox Code Playgroud)
这工作正常,除非我有两个列表,其中正则表达式匹配第一个列表的开始标记和第二个列表的结束标记.所以这
[list]list1[/list] [list]list2[/list]
Run Code Online (Sandbox Code Playgroud)
成为这个:
<ul>list1[/list] [list]list2</ul>
Run Code Online (Sandbox Code Playgroud)
这会产生非常难看的输出.有关如何解决此问题的任何想法?
我编写了一个类似于我用来编写此消息的Javascript bbcode.它还包含一个实时预览框,就像我在下面看到的那样.我目前面临的唯一问题是一些嵌套的bbcode没有解析.
例如:
[quote]
[quote][/quote]
[/quote]
Run Code Online (Sandbox Code Playgroud)
没有正确解析.
这是我目前的Javascript.
function preview() {
var txt = $('#editor').val();
txt = txt.replace(/</g,'<');
txt = txt.replace(/>/g,'>');
txt = txt.replace(/[\r\n]/g,'%lb%');
var find = [
/\[quote\](.*?)\[\/quote\]/gi,
/\[quote author="(.*?)" date="(.*?)"\](.*?)\[\/quote\]/gi,
/\[b\](.*?)\[\/b\]/gi,
/\[i\](.*?)\[\/i\]/gi,
/\[u\](.*?)\[\/u\]/gi,
/\[left\](.*?)\[\/left\]/gi,
/\[center\](.*?)\[\/center\]/gi,
/\[right\](.*?)\[\/right\]/gi,
/\[size=(10|12|24|30)](.*?)\[\/size\]/gi,
/\[font=(.*?)](.*?)\[\/font\]/gi,
/\[color=(.*?)](.*?)\[\/color\]/gi,
/\[url(?:\=?)(.*?)\](.*?)\[\/url\]/gi,
/\[email=(.*?)\](.*?)\[\/email\]/gi,
/\[email\](.*?)\[\/email\]/gi,
/\[img(.*?)\](.*?)\[\/img\]/gi,
/(?:%lb%|\s)*\[code(?:\=?)(?:.*?)\](?:%lb%|\s)*(.*?)(?:%lb%|\s)*\[\/code\](?:%lb%|\s)*/gi,
/\[list(.*?)\](.*?)\[\*\](.*?)(?:%lb%|\s)*(\[\*\].*?\[\/list\]|\[\/list\])/i,
/(?:%lb%|\s)*\[list\](?:%lb%|\s)*(.*?)(?:%lb%|\s)*\[\/list\](?:%lb%|\s)*/gi,
/(?:%lb%|\s)*\[list=(\d)\](?:%lb%|\s)*(.*?)(?:%lb%|\s)*\[\/list\](?:%lb%|\s)*/gi,
/(?:%lb%){3,}/g
];
var replace = [
'<blockquote><div class="quote"><div class="quote_body">$1</div></div></blockquote>',
'<blockquote><div class="quote"><div class="quote_author"><span class="quote_from">Quote from</span> <span class="author">$1</span> on <span class="date">$2</span></div><div class="quote_body">$3</div></div></blockquote>',
'<b>$1<\/b>',
'<i>$1<\/i>',
'<u>$1<\/u>',
'<div class="align_left">$1<\/div>',
'<div class="align_center">$1<\/div>',
'<div class="align_right">$1<\/div>',
'<span style="font-size:$1px;">$2</span>', …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个开源PHP脚本来着色里面的代码
<code></code>
Run Code Online (Sandbox Code Playgroud)
要么
[code] [/ code]标签.
谢谢
我在标签中有一个字符串,我想要提取而不会找到标签.我试过了:
string = re.search("\[tag\](.*?)\[tag\]", "[tag]string[tag]")
print(string.group(0))
Run Code Online (Sandbox Code Playgroud)
和
string = re.search("/\[tag\](.*?)\[tag\]/i", "extra[tag]string[tag]extra")
print(string.group(0))
Run Code Online (Sandbox Code Playgroud)
都归来了
[tag]string[tag]
Run Code Online (Sandbox Code Playgroud) 有人知道在PHPBB3中嵌入youtube视频的最佳bbcode吗?我用下面的内容:
BBCode用法:
[youtube]http://{SIMPLETEXT1}youtube.com/watch?v={SIMPLETEXT2}[/youtube]
Run Code Online (Sandbox Code Playgroud)
HTML替换:
<object width="560" height="315">
<param name="movie" value="http://{SIMPLETEXT1}youtube.com/v/{SIMPLETEXT2}"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://{SIMPLETEXT1}youtube.com/v/{SIMPLETEXT2}"
type="application/x-shockwave-flash"
width="560"
height="315"
allowscriptaccess="always"
allowfullscreen="true">
</embed>
</object>
Run Code Online (Sandbox Code Playgroud)
这似乎有一些问题,并且当用户放置的URL类似时不会转换为HTML http://www.youtube.com/watch?v=vS6VBOeJ-i4&feature=related.
我想制作一个HTML替换,以便它可以用iFrame替换用户链接到YouTube的新嵌入样式,但是也使用了URL属性wmode=transparent,因为我也使用了Shadowbox.
我已经$mybbcode = [b]Hello word[/b]
用php 的bbcode字符串我想在html页面中用html格式显示它.
例如:<div><b>hello word</b><div>
我将自己的vBulletin与自定义首页集成在一起.我想知道,我怎么能在那个页面上使用vBulletin BBcode(我在那里显示一些帖子).
有什么建议?
我有这个:
str = "some html code [img]......[/img] some html code [img]......[/img]"
Run Code Online (Sandbox Code Playgroud)
我想得到这个:
["[img]......[/img]","[img]......[/img]"]
Run Code Online (Sandbox Code Playgroud) 在我的网站,我想用这样的其他链接替换链接
www.abc.com 或http://abc.com将被取代
http://www.XXXXXX.com/sonal?www.abc.com
要么
http://www.XXXXXX.com/sonal?http://abc.com
所以我使用此代码,但此代码给出了一些错误
Warning: preg_replace() [function.preg-replace]: Unknown modifier '/'in /home/XXXXX/public_html/YYYYYYYYY/KKKKKK.php on line 495
$search_array = array(
"/\[url]www|http://.([^'\"]*)\[\/url]/iU",
"/\[url]([^'\"]*)\[\/url]/iU",
"/\[url=www|http://.([^'\"\s]*)](.*)\[\/url]/iU",
"/\[url=([^'\"\s]*)](.*)\[\/url]/iU"
);
$replace_array = array(
"<a href=\"http://XXXXXX.com/sonal?.\\1\" target=\"_blank\" rel=\"nofollow\">www. \\1</a>",
"<a href=\"\\1\" target=\"_blank\" rel=\"nofollow\">\\1</a>",
"<a href=\"http://XXXXXX.com/sonal?.\\1\" target=\"_blank\" rel=\"nofollow\">\\2</a>",
"<a href=\"\\1\" target=\"_blank\" rel=\"nofollow\">\\2</a>"
);
$msg = preg_replace($search_array, $replace_array, $msg);
return $msg;
Run Code Online (Sandbox Code Playgroud)