糞エンジニアでごめんなさい。

October 6, 2010,
tags: php


このエントリーをはてなブックマークに追加

http://d.hatena.ne.jp/gnarl/20100921/1285065333

ここの問題をやってみましたが。結局XSS対策うまく出来てないようです。。。。
だれか答えを教えてください。。。

<?php
function expandString( $str ) {

	$str = htmlspecialchars($str,ENT_QUOTES );
	$pattern = array("/(\#)([a-zA-Z1-9]*)/i","/(@)([a-zA-Z1-9]*)/i","/(https|http?:\/\/[\w-.!~*'\" ();\/?:@&=+\$,%\#]+)/i");
	$replace = array('<a href="http:\/\/twitter.com\/#search?q=%23\2">\1\2</a>','<a href="http:\/\/twitter.com\/\2/">\1\2</a>','<a href="\1">\1</a>');

	return preg_replace($pattern,$replace, $str);


}
?>
comments powered by Disqus