はてなキーワード: アンパサンドとは
いつか正規表現ってこんなにすごいんですよー
という紹介文を考えてたらやはりエロだよね
という結論に至ったのでこんなのを書いてみます
yourfilehostのURLが取り出せなくて困ります
いいけど今回はこんな方法を取ってみましたー
↓
2、HTMLソースからwmvで検索して動画のURLの場所を特定
↓
まず1。全然難しくないですねー
続いて2。
wmvで検索するもどうやら目的の動画のURLは一行に収まっている
そして3。ここからが本番です
欲しいURLは末尾がwmvのはずなのでまず以下の正規表現で置き換え。
検索 - 置換のダイアログで以下の設定してから「全置換」を実行。
検索語「wmv」
置換する語「wmv\n」
大文字小文字の区別にチェック(どっちでもいい)
ファイル先頭からにチェック(必須)
正規表現にチェック(必須)
はい。説明するまでもないです。wmvの後に改行入れただけ。
エディタの状態はこちら
希崎ジェシカ(省略)<br><a href="http://www.yourfilehost.com/media.php?cat=video&amp;file=jessica_0107_001.wmv " target="_blank">希崎ジェシカ 動画</a><br><a href="http://www.yourfilehost.com/media.php?cat=video&amp;file=jessica_0107_002.wmv " target="_blank">希崎ジェシカ 動画</a><br><a href="http://www.yourfilehost.com/media.php?cat=video&amp;file=jessica_0107_003.wmv " target="_blank">希崎ジェシカ 動画</a><br><a href="http://www.yourfilehost.com/media.php?cat=video&amp;file=jessica_0107_004.wmv " target="_blank">希崎ジェシカ 動画</a><br><br><a href="http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato01.wmv " target="_blank">希崎ジェシカ 動画</a><br><a href="http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato02.wmv " target="_blank">希崎ジェシカ 動画</a><br><a href="http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato03.wmv " target="_blank">希崎ジェシカ 動画</a><br><a href="http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato04.wmv " target="_blank">希崎ジェシカ 動画</a><br><a href="http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato05.wmv " target="_blank">希崎ジェシカ 動画</a><br><a href="http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato06.wmv " target="_blank">希崎ジェシカ 動画</a><br><a href="http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato07.wmv
いいかんじですねー。はい次はURLの前にくっついてる文字列を消し去ります。
検索語「.*"http」
置換する語「http」
大文字小文字の区別にチェック(どっちでもいい)
ファイル先頭からにチェック(必須)
正規表現にチェック(必須)
http://www.yourfilehost.com/media.php?cat=video&amp;file=jessica_0107_001.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jessica_0107_002.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jessica_0107_003.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jessica_0107_004.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato01.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato02.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato03.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato04.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato05.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato06.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato07.wmv
いいですねー。おっと”&”なんて文字もあります。
これも置換
http://www.yourfilehost.com/media.php?cat=video&amp;file=jessica_0107_001.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jessica_0107_002.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jessica_0107_003.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jessica_0107_004.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato01.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato02.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato03.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato04.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato05.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato06.wmv http://www.yourfilehost.com/media.php?cat=video&amp;file=jk3pcheckskato07.wmv
はい見直してみると微妙ですねー。
おわりー。
※追記
&アンパサンドが上手く行かなくてふて腐れ。
もういいやぺたり。
エガミくんの脆弱性のやつ
http://anond.hatelabo.jp/20081020032812
id:Hamachiya2さん!id:hiroyukiegamiです。
お返事有難う御座います!
おぉ、確かにおっしゃるとおりです。
丸投げしてしまい申し訳御座いません。
分からない点を投げさせてもらいますね。
http://flickr2.in/fli.html?data=%3Cscript%3Ejavascript%3Aalert(%27xss%27)%3B%3C%2Fscript%3E
なので$_get[data]の箇所のjsタグを無効化すればいいのでしょうかね?
$params = array('api_key' => 'フリッカーのAPIキー',
'method' => 'flickr.photos.search',
'text' => $_GET["data"],
'per_page' => '50',
'page' => '1',
'extras' => 'owner_name',
'format' => 'php_serial',);
$encoded_params = array();
となっておりますので。
$Hamachiya2 = htmlspecialchars($_GET["data"], ENT_QUOTES); //←ここを追加
$params = array('api_key' => 'フリッカーのAPIキー',
'method' => 'flickr.photos.search',
'text' => $Hamachiya2,
'per_page' => '50',
'page' => '1',
'extras' => 'owner_name',
'format' => 'php_serial',);
$encoded_params = array();
http://flickr2.in/fli.html?data=%3Cscript%3Ejavascript%3Aalert(%27xss%27)%3B%3C%2Fscript%3E
うーん、、、やっぱりアラートが出ちゃいますね…。
なぜでしょうか。。。
XSS対策で有名と言われるタグ、『htmlspecialchars』を使って
* '&' (アンパサンド) は '&' になります。* ENT_NOQUOTES が設定されていない場合、 '"' (ダブルクォート) は '"'になります。
* ENT_QUOTES が設定されている場合のみ、 ''' (シングルクオート) は '''になります。
* '<' (小なり) は '<' になります。
* '>' (大なり) は '>' になります。
を変換したのに、、、なんでエラーが出るんだろー(涙)
htmlspecialcharsってどういう効果があるんですかね??
教えてid:Hamachiya2先生ー!
PHP: htmlspecialchars - Manual
http://jp.php.net/htmlspecialchars
string htmlspecialchars ( string $string [, int $quote_style [, string $charset [, bool $double_encode ]]] )文字の中には HTML において特殊な意味を持つものがあり、 それらの本来の値を表示したければ HTML の表現形式に変換してやらなければなりません。 この関数は、これらの変換を行った結果の文字列を返します。 これは、日常的な Web プログラミングにおいて最も有用な変換を行います。 全ての HTML 文字エンティティを変換する必要がある場合には、代わりに htmlentities() を使用してください。
今度よかったら話し聞いてください。