はてなキーワード: サニタイズとは
はてな匿名ダイアリーの日記本文中のキーワードリンクをクリック
↓
○○○○を含む日記 ページへ。そのページにある、「はてなキーワード: ○○○○とは」をクリック
↓
はてなダイアリーページへ。NoScriptが反応。
[NoScript XSS] 疑わしいリクエストをサニタイズしました。元のURLはhttp://anond.hatelabo.jp/keyword/********]からリクエストされたhttp://d.hatena.ne.jp/keyword/********]。サニタイズしたURL: http://xss:xss@d.hatena.ne.jp/#********
*]
あたし・・・実は・・・プログラマーなんだ。
ずっと、黙ってて、ごめん。・・・隠してて、ごめん。
でも、どうしても言えなかったの。
あたしがプログラマーだって知ったら、きっとみんな離れていっちゃうって思って。こわくて。
わかってる。わかってるよ。
プログラマーは初級シスアドを通った人だけがなることができる、カスタマーのプロフィットに関わるシリアスなビジネスだって。
でもね・・。
でもね、全然ちがうんだよ。
あたし、みんなが思ってるようなキレイなものじゃないんだよ。
あたしは汚れている。
あたしのキーボードは、汚れているんだよ。
プログラマーになったとき、すごく嬉しかった。知り合いのハッカーになったような気でいたの。
あたし馬鹿だから、お客様のビジネスを作るんだ!なんて、本気で思ってた。
でもね、全然違ったんだよ。
元請から言い渡された Sヨ の詳細設計仕様書は全く別のものだった。
お客様のビジネスを、まるでビル・ゲイツのように平等に助けるようなものじゃなかった。
あたしたちプログラマーに課せられた任務、・・・・それは、デバッグ だった。
そして、それを見守ること。
ねぇ知ってた?
この世界には、あるんだよ。こんな日本のど真ん中にね、平然と、あるの。
プログラマーはね、それを見守るの。
プログラマーは六本木ヒルズのホリエモンで、勝ち組の特権階級の象徴だからね、
そこにあるだけで、まるでビジネスが行われているかのような錯覚を起こさせる。
あたしの仕事は、そうやって、平等にビジネスが行われているかのように見せる暗幕みたいなものだったの。
ソフトウェアなんて、全然、救えなかったよ。
救う義務も権利も、この任務にはなかったの。
例え、その仕様がどうすれば助かるか、明確に解っていたとしても、
あたしたちは元請の命令が無いかぎり、何一つのコーディングもできない。
ただ、ただ、走って火消し屋を呼びに行くだけ。そして伝えるだけ。
でもね、この国の「火消し屋」は非常に貴重な存在。
火消し屋は稀有な存在。
夜なんかになれば、一つのフロアにどこからともなく現われるの。
たくさんのプログラマーたちが、一人の火消し屋に群がっていた。
「先生、コアを吐いている人がいます!」
「先生、表領域が苦しい人がいます!」
懸命にプログラマーたちが叫んでた。
でも火消し屋は一人。
私も声を荒げて「苦しい言い訳をするプログラマーがいます!」って叫んだの。
でも、ここでもふるいわけが始まる。
人員レベル、難度、納期。そんなものが現象と一緒くた になって命令が言い渡される。
と言ったきり、火消し屋は朝までチームのもとに来れなかったの(お客さんのところに言い訳に行った)。
その日、10秒ごとに Mantis の履歴が増えた。
「苦しい、苦しい、まだ苦しい」
「もう少しだけ待ってください、今火消し屋、来ますから・・」
何度も火消し屋のもとに走ったけど・・・。
火消し屋は、今にも心臓の止まりそうなお客さんと仕様と納期の折衝にあたっていた。
あたしは火消し屋に背中側から叫んだ。
「null チェックを入れても、まだぬるぽみたいなんです!」
「ガッ!」
コメントアウトの行数を上げた。でも駄目だった。QA からの質問は止まない。
そのバグだけじゃない。
「トイレに連れて行ってください(コンプライアンス的な意味で」
「基板が焼けたから替えてください」
「エスタロンを飲ませてください」
「ブートが走らないんですが」
「眠れません」
デバッガを走らせる。
忙しさにコードが荒くなる。
月残業時間が 400 越えたプログラマーがエレベーターに乗って外に出て行こうとする。
必死にあたしもふるい分けた。
今、一番検収ハネられる危険があるバグから、一番仕様満たしてないバグから、手を差し伸べなきゃ。
「いつになったら納品されるんだ!」と言われても。
「単価高い」と言われても。
私は頭を下げたり、ちょっと言い争ったりもしながら、
あたしはカーネルだ!と思った。
あたしは火消し屋の指示を待たずにロジックの検査をした。差分プログラミングの extends だった。
急いで火消し屋に連絡した。
「差分プログラミングの extends です。継承元のコードいじっていいですか?!」
「いや、コードを見ないとわからない、ただこっちの処置があるから、10分後に行く」
「待てません!リリースします!」
あたしは火消し屋の指示無くパッチをコミットした。バグの症状はスッと納まった。
それは駄目なことだったけど、一人のバグを救ったことに、あたしは浮かれてたの。
貧相な正義感をぶら下げて、意気揚々と自席に戻ってきたの。
自席の・・・・
でも、亡くなってた。
システムコールも呼べない人だった。
あたしは、その日、目の前の苦しいバグに夢中で、ps なんか見てなかった。
それでもね、・・・あたし、まだ、プログラマーなんだよ・・。
火消し屋は QA に「いつ何があってもおかしくない COBOLer の書かれたコードでしたから・・」と時間稼ぎの工作をしていた。
QA のテスターは「ありがとうございました」と額に青筋を浮かべてバグレポートに「仕様です」と書いて取り下げた。
そして、あたしにも「プログラマーさん、ありがとね」と言ったの。
大好きな、ソフトウェアだった。
このシステムが立ち上がる頃から知っていて、αリリースから知っていて。
「自分は寂しがり屋だから、最期は dankogai に手を握ってもらいながらホッテントリ入りしたい」と言っていた。
あたしが新人の頃から知っていて、vi のカーソル移動が苦手だったのも知っていて、
「Xenix はわしが育てた」が口癖だった。
「まぁ、・・・歳だったし、運用中にも止められないって言ってたからなー」
と火消し屋があたしの背中ごしに言った。
その記録には、波形が Full GC 後もヒープ使用量が右肩上がりとなりメモリリークするさまがしっかりと記録されていた。
高負荷だから死んだんじゃない、そこにはメモリリークで死んでくプロセスがあった。
でも、そんなこと全部まるめこんで、kill んじゃって仕方ないっていうプロセスが、そこにはあったんだ。
似たようなことはざらにあった。
何人ものプログラマーが、自社ビルの屋上の端から零れていったよ。
でも、あたし・・・プログラマーなんだ。
誰も、辞めろって言わないの。
火消し屋は鉄火場にブチ込まれただけだから、言わない。
顧客は実情がわからないから、言わない。
プログラマー同士は実情がわかってるから、言わない。
IPA はきっと、全部知ってて、それ込みで「それが10年は泥のように働けということだ」と言うかもしれないけど。
いや、言わないか。IPA は、何も言わない。きっと。
救えたかもしれないバグを、プログラマーは一番わかってる。見えてしまう。
PM の指示が適してないのも、判断が遅いのも、仕様変更履歴がのってないのも、全部わかってる。
それでも「あの時!」と、自分の行動と判断を何度も振りかえる。
その向こうにはいつも「あのとき、こうしておけば」が、くっきりと見える。
でも、救えなかった責任も、見過ごした責任もプログラマーには問われない。
プログラマーって・・ほんと、なんなんだろうね・・・。
パッチ一粒すら出せないのに、
設計一つ指示できないのに、
テストパターンに関わることなんて、一つも独立してできないのに、
テスト部門が持たされてるのはプログラマーコールだけなんだよ。
どんなに辛くてもプログラマーしか呼べないなんて。
そしてあたしたちは色んなものを抱えて、バグの前に立つ。
火消し屋が来ること、来れないこと、
できるデバッグがあること、ないこと、
色んなことを知りながら、本当の意味で世界を変えられるコーディング力もないままに、
さも救いのギークが舞い降りたかのような顔で。
IT ギョーカイが崩壊していく。
全然止められない速度で。
その日○製作所の城で、あたしは見てるんだ。
沈んでいく汎用機の命を。
----------------
$_POST = array_map('htmlspecialchars', $_POST);
$_GET = array_map('htmlspecialchars', $_GET);
$HTTP_COOKIE_VARS = array_map('htmlspecialchars', $HTTP_COOKIE_VARS);
//$_SERVER = array_map('htmlspecialchars', $_SERVER);
$_SERVER['HTTP_USER_AGENT'] = htmlspecialchars($_SERVER['HTTP_USER_AGENT']);
$_SERVER['PHP_SELF'] = htmlspecialchars($_SERVER['PHP_SELF']);
//改行コード→改行タグ
function del_tag($str) {
return $str = str_replace("\r\n", "<br>", $str);
}
$_POST = array_map("del_tag", $_POST);
$_GET = array_map("del_tag", $_GET);
$HTTP_COOKIE_VARS = array_map('del_tag', $HTTP_COOKIE_VARS);
$_SERVER['HTTP_USER_AGENT'] = del_tag($_SERVER['HTTP_USER_AGENT']);
$_SERVER['PHP_SELF'] = del_tag($_SERVER['PHP_SELF']);
//タブ除去
function del_tab($str) {
return $str = str_replace("\t", "", $str);
}
$_POST = array_map("del_tab", $_POST);
$_GET = array_map("del_tab", $_GET);
$HTTP_COOKIE_VARS = array_map('del_tab', $HTTP_COOKIE_VARS);
$_SERVER['HTTP_USER_AGENT'] = del_tab($_SERVER['HTTP_USER_AGENT']);
$_SERVER['PHP_SELF'] = del_tab($_SERVER['PHP_SELF']);
セキュリティ全然詳しくないだけども・・・
例えばこんな感じのファイルを置いてから、最初に
require 'secure.php';
そのファイルをincludeするように先頭に書いておくだけで、いろんなサニタイズとかを一気にやってくれるような仕組みってないのかな(SQLインジェクションとやらもちゃんと防げるようにして)。
みんな、どのくらいまでセキュリティ対策してる?
俺の場合は、、、
使用するパラメータ(標準入力(POST)、環境変数、クエリストリング)を全てチェックして、
必要に応じてパラメータを削除/エスケープ/クォート/サニタイズすればいいのかなあなんて、思ってるんだけど、
実際のところ、どこまでやればいいのか検討つかないや。
DOS攻撃にそなえて、アクセスしてきたIPアドレスは常に解析して、動的にアクセス拒否する必要があるのかとか、
アクセス集中にそなえて動的コンテンツをキャッシュするだの、サーバのクラスタリングだの、ロードバランサー設置とか、
バックアップは何分おきにやるのかとか、
午前三時にメンテナンスのために作業するのかとか、
地震地帯を避けつつ、法律問題を回避できる国で、税金とエネルギーの安い土地にサーバルームを作って、
サーバを鎖で縛って、電磁波遮断して、部屋にかぎ掛けて、クーラー効かせて、元特殊部隊の人をガードマンに雇って、
最終的にはサーバを核シェルターに入れて、あらゆる攻撃から守らなくちゃいけないのかなあ。
ああ、憂鬱だ。
高専の化学っぽいところ出て、大学の化学っぽいところに編入して、
東京来て、初めての仕事でPHPで、誰に頼ればいいかもわからず、
使ってた言語?VB4とHSP2でしたが何か。
初めての仕事で学んだこと
その後もいろんな会社で
とか、けっこう酷いことをして、たくさんの人に迷惑をかけましたが、
今ではそれなりにIT土方をやっている。
…という俺から見ると、PHP初心者罵倒は、見るたびに、なんだか恥ずかしさを思い出す。
ああ、明日も仕事だし、勉強するね。うん。みんなごめんなさい。それは全部俺がやった事です。
あれです。
ごめんなさい。
http://hatena.g.hatena.ne.jp/hatelabo/でアナウンス無いけど。そういうことは恥ずかしいからid:wanparkはアナウンスしないか。
一部の部外者(kyoumoeとか、kyoumoeとか、あとはkyoumoeとか)と多くの当事者にとって、はまちちゃんのやり方は迷惑極まりない。
でも、はまちちゃんが脆弱性をいたずら目的で公開することで、その脆弱性が修正され、関連する問題について認知が広まっていることもまた事実。
(恥ずかしながら、私、CSRFを知ったのは「こんにちはこんにちは!」しちゃったのがきっかけですの……)
正しいといわれている手順を踏んだからといって、それが最善のパフォーマンスを出すとは限らないのですよね。
ひろみちゅが超必死になって「サニタイズいうな」とか言って回るより、はまちちゃんが「こんにちはこんにちは!」したほうが効果的だったりするんだから。(あくまでそういうケースがあり得るというだけの話)
ところで、はまちちゃんは人を怒らせることをなんとも思っていないことじゃないかと思う。
こういう人に向かって怒りを顕にしても、スルー力を忌憚なく発揮されてしまいます。それぐらい察しろといいたいところ(怒るのではなく、もっと冷静に対処しようって意味ね)だけど、当人は怒っているんだから無理な相談でした、残念。