Hatena::ブログ(Diary)

satoru.netの自由帳 このページをアンテナに追加 RSSフィード

100501Satday 知ってそうで知らなかった色々メモ

[][]特定IPからのリクエストを遮断する方法

ApacheのDenyで拒否ってもきりがない時などは、Apacheより前のレイヤーで拒否ってしまおう。

特定のIPからの80ポートへの接続を遮断

iptables -A OUTPUT -p tcp --sport 80 -d xxx.xxx.xxx.xxx -j DROP

完全に遮断してしまうと相手もすぐ気づかせてしまうので注意。

特定のIPからの80ポートへの接続を1分間に10回遮断

iptables -A OUTPUT -p tcp --sport 80 -d xxx.xxx.xxx.xxx -m limit --limit 10/minute -j DROP

クレーマ的な人にはこっちが吉。ブラウザの挙動的にはたまーに繋がったり繋がらなかったりする重いサイトを偽装。

あからさまにAccess Denyで接続拒否になると、ムッとされるけどこれだと平和に終戦。

設定した制限を消すとき

iptables -D OUTPUT -p tcp --sport 80 -d xxx.xxx.xxx.xxx -j DROP

※最初の-A(add)を、-D(Delete)に変える

[][]phpのヒアドキュメント内で関数を実行する方法

コード汚くなるけどね〜。

関数展開

<?
function plus($a,$b){ return $a+$b; }

print eval("?>".<<<EOM
<!-- 関数展開 -->
3+10=<? echo plus(3,10) ?>
EOM
);
?>

配列&ループ処理

<?
$ar = array("1","2","3");

print eval("?>".<<<EOM
<!-- ループ処理 -->
<? foreach(\$ar as \$a){
	echo "\$a<br>"; ## 1 2 3
} ?>
EOM
);
?>

ヒアドキュメント内でヒアドキュメント(笑)

<?
print eval("?>".<<<EOM
<!-- ヒアドキュメント内でヒアドキュメント -->
<? echo <<<UNKO
ひやぁぁあああ!
ひやぁぁあああ!
UNKO;
?>
EOM
);
?>

[][]LWP::SimpleのUserAgent変更する方法

use LWP::Simple;

$LWP::Simple::ua->agent("unko"); ## LWP::Simple::get()のUAが"unko"になる
get("http://satoru.net/unko/");

$LWP::Simple::uaがnew UserAgent()としてIMPORT OKになってるらしいのでイジイジ可能っていう設計みたい

UA偽装しないと取得できないよーな時に便利

©satoru.net
Mail Twitter