はてなキーワード: shift_jisとは
私は単なる一増田でしかないのだが、なんとなく今日を増田的情報セキュリティの日とすることに決めた。
なぜって、今日は、年末年始という忙しく、そして狙われやすい時期をはさみ、2月2日からきっかり103日前だからである。
決して、はまちちゃんとエガミ君のやり取りがあったとか、増田はセキュリティ関連の話題に乏しいとか思ったからではない。
さて、一口にセキュリティといっても、その幅は広い。まずは定番から攻めるのが定石であろう。何が定番なのかについては、例えば「Webアプリ脆弱性オタがふつーのSEの彼女に脆弱性世界を軽く紹介(ry」などが参考になるだろう。
しかし、たとえば「初心者はPHPで脆弱なウェブアプリをどんどん量産すべし」といったような初心者には、まずは10というよりも1から脱初心者していただくのがよいであろう。
そんなわけで、今年のテーマはXSSとする。繰り返すが、はまちちゃんとエガミ君のやり取りがあったとか、XSS以外のネタが少ないとかではない。
さて、このように、今年のテーマはXSSとなった。それではXSSとは何か、どのように起き、どう対処すればよいのか、そのような実例ちょうど良いエントリが「エガミくんの脆弱性のやつ」である。
さらに、このエントリをよんで、実際に「XSSしたい><」と思った人に読んでいただきたいのは「今昔さっき物語」であろうか。
さて、非常に簡単にXSSについて書いたが、このXSS、実はその他のさまざまな脆弱性の基礎でもある。
出力がHTMLならXSSだが、SQLならSQLインジェクションだし、シェルならコマンドインジェクション、メールヘッダならメールヘッダインジェクション等々になりえる。とくに、初心者にとってシェルは予想外のところで使われているから、気をつけよう。
その他セキュリティに関心があればsecurityタグをお勧めしたい。セキュリティよりもsecurityの方が濃いのである。
今時Shift_JISでプログラミングするバカな奴はいないだろうけど折角まとめたので公開
@ | [ | \ | ] | ^ | _ | ` | { | | | } | ~ | |
---|---|---|---|---|---|---|---|---|---|---|---|
40 | 5B | 5C | 5D | 5E | 5F | 60 | 7B | 7C | 7D | 7E | |
81 | ー | ― | ‐ | / | \ | ?? | + | ?? | ± | × | |
82 | ・ | ・ | ・ | ・ | ・ | ・ | A | ・ | ・ | ・ | ・ |
83 | ァ | ゼ | ソ | ゾ | タ | ダ | チ | ボ | ポ | マ | ミ |
84 | А | Ъ | Ы | Ь | Э | Ю | Я | к | л | м | н |
85 | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ |
86 | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ |
87 | ?? | ?? | ?? | ?? | ・ | ?? | ?? | ・ | ・ | ・ | ?? |
88 | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ |
89 | 院 | 閏 | 噂 | 云 | 運 | 雲 | 荏 | 閲 | 榎 | 厭 | 円 |
8A | 魁 | 骸 | 浬 | 馨 | 蛙 | 垣 | 柿 | 顎 | 掛 | 笠 | 樫 |
8B | 機 | 擬 | 欺 | 犠 | 疑 | 祇 | 義 | 宮 | 弓 | 急 | 救 |
8C | 掘 | 啓 | 圭 | 珪 | 型 | 契 | 形 | 鶏 | 芸 | 迎 | 鯨 |
8D | 后 | 梗 | 構 | 江 | 洪 | 浩 | 港 | 砿 | 鋼 | 閤 | 降 |
8E | 察 | 纂 | 蚕 | 讃 | 賛 | 酸 | 餐 | 施 | 旨 | 枝 | 止 |
8F | 宗 | 充 | 十 | 従 | 戎 | 柔 | 汁 | 旬 | 楯 | 殉 | 淳 |
90 | 拭 | 深 | 申 | 疹 | 真 | 神 | 秦 | 須 | 酢 | 図 | 厨 |
91 | 繊 | 措 | 曾 | 曽 | 楚 | 狙 | 疏 | 捜 | 掃 | 挿 | 掻 |
92 | 叩 | 端 | 箪 | 綻 | 耽 | 胆 | 蛋 | 畜 | 竹 | 筑 | 蓄 |
93 | 邸 | 甜 | 貼 | 転 | 顛 | 点 | 伝 | 怒 | 倒 | 党 | 冬 |
94 | 如 | 納 | 能 | 脳 | 膿 | 農 | 覗 | 倍 | 培 | 媒 | 梅 |
95 | 鼻 | 票 | 表 | 評 | 豹 | 廟 | 描 | 府 | 怖 | 扶 | 敷 |
96 | 法 | 房 | 暴 | 望 | 某 | 棒 | 冒 | 本 | 翻 | 凡 | 盆 |
97 | 諭 | 夕 | 予 | 余 | 与 | 誉 | 輿 | 養 | 慾 | 抑 | 欲 |
98 | 蓮 | 麓 | 禄 | 肋 | 録 | 論 | 倭 | ・ | ・ | ・ | ・ |
99 | 僉 | 兌 | 兔 | 兢 | 竸 | 兩 | 兪 | 几 | 處 | 凩 | 凭 |
9A | 咫 | 喙 | 喀 | 咯 | 喊 | 喟 | 啻 | 嘴 | 嘶 | 嘲 | 嘸 |
9B | 奸 | 媼 | 媾 | 嫋 | 嫂 | 媽 | 嫣 | 學 | 斈 | 孺 | 宀 |
9C | 廖 | 彈 | 彌 | 彎 | 弯 | 彑 | 彖 | 悳 | 忿 | 怡 | 恠 |
9D | 戞 | 拏 | 拿 | 拆 | 擔 | 拈 | 拜 | 掉 | 掟 | 掵 | 捫 |
9E | 曄 | 杣 | 杤 | 枉 | 杰 | 枩 | 杼 | 桀 | 桍 | 栲 | 桎 |
9F | 檗 | 歇 | 歃 | 歉 | 歐 | 歙 | 歔 | 毬 | 毫 | 毳 | 毯 |
E0 | 漾 | 濕 | 濬 | 濔 | 濘 | 濱 | 濮 | 炮 | 烟 | 烋 | 烝 |
E1 | 瓠 | 畆 | 畚 | 畩 | 畤 | 畧 | 畫 | 痣 | 痞 | 痾 | 痿 |
E2 | 磧 | 禺 | 秉 | 秕 | 秧 | 秬 | 秡 | 窖 | 窩 | 竈 | 窰 |
E3 | 紂 | 綣 | 綵 | 緇 | 綽 | 綫 | 總 | 縵 | 縹 | 繃 | 縷 |
E4 | 隋 | 膽 | 臀 | 臂 | 膺 | 臉 | 臍 | 艝 | 艚 | 艟 | 艤 |
E5 | 蕁 | 藜 | 藹 | 蘊 | 蘓 | 蘋 | 藾 | 蛔 | 蛞 | 蛩 | 蛬 |
E6 | 襦 | 觴 | 觸 | 訃 | 訖 | 訐 | 訌 | 諚 | 諫 | 諳 | 諧 |
E7 | 蹇 | 躰 | 軆 | 躱 | 躾 | 軅 | 軈 | 轆 | 轎 | 轗 | 轜 |
E8 | 錙 | 鐚 | 鐔 | 鐓 | 鐃 | 鐇 | 鐐 | 閔 | 閖 | 閘 | 閙 |
E9 | 顱 | 饉 | 饅 | 饐 | 饋 | 饑 | 饒 | 驅 | 驂 | 驀 | 驃 |
EA | 鵝 | 鷦 | 鷭 | 鷯 | 鷽 | 鸚 | 鸛 | 黠 | 黥 | 黨 | 黯 |
EB | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ |
EC | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ |
ED | 纊 | 倞 | 偆 | 偰 | 偂 | 傔 | ?? | 垬 | 埈 | 埇 | ?? |
EE | 犾 | 劯 | 砡 | 硎 | 硤 | 硺 | ?? | 葈 | 蒴 | 蕓 | 蕙 |
EF | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ |
F0 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
F1 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
F2 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
F3 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
F4 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
F5 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
F6 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
F7 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
F8 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
F9 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ?? |
FA | ?? | ∵ | 纊 | 褜 | 鍈 | 銈 | 蓜 | 傔 | ?? | 僘 | 兊 |
FB | 涖 | 犱 | 犾 | 猤 | ?? | 獷 | 玽 | 硺 | ?? | ?? | ?? |
FC | 髜 | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ |
40 | 5B | 5C | 5D | 5E | 5F | 60 | 7B | 7C | 7D | 7E | |
@ | [ | \ | ] | ^ | _ | ` | { | | | } | ~ |
# ちなみに「??」って表示されてるのはまー外字部分だしそんなに気にしなくていいかと
これらの文字コードには気をつけること。
特に2バイト目が5C(\)ものは要注意。
"や'と引っ付くのでまともにプログラミングできない。
print '予定表'; print "無能";
特にPerlの場合は文字列中に展開できる構文が多いのもあり、色々なエラーを出せるので注意が必要だ。
print qq[夕焼け小焼け]; # 「夕」の2バイト目でエラー print "警察24時!"; # @24という変数とみなされる
また、正規表現でも厄介な問題が起きまくるので注意すべし。
my $str = 'ダ'; print 'match' if $str =~ /_/; # マッチしちゃう
こういう様々な理由からShift_JISでプログラミングをしてはいけないわけだ。
だからUTF8を使うべきだ。UTF8が無理でもせめてEUC-JPのどちらかでプログラミングすることをオススメする。
まーEUC-JPはEUC-JPでShift_JISと一部文字コードが重なっているので正直扱いにくいのでやっぱりUTF8を強く推奨する。
これから就職活動するバカはいないだろうけど、そういう人もいるだろうから少し書いておこう。
どちらかというと、アンチMS派なUnix技術者がWindowsだけの世界で仕事をする辛さを。
Unix技術者は、業務実績にSolaris/AIX/Linuxって書いてあってもちゃんと質問しろ。Windowsの仕事は無いですよね?って。
僕が食べるために職を手にしているこのIT業界というのは、バッドノウハウとMicroSoftとExcelで出来ている。
その為、僕が手にしたUnixの知識は、特定の仕事以外でしか役に立たないし、使わない。
viだろうが、TeXだろうが、Xの知識よりも、MFCとVBAのちょっとした知識のあるヤツが上にみられる。
ExcelとWindowsの知識があればそれだけで仕事になるからだ。
いいか、viやTeX、Xなんて捨てちまえ、Excelがあればそれでいいのだ。
MSでは、ActiveXを使ってCOMを操作し、クライアントのレジストリを操作し、IE単体でできないことをやってしまうヤツがハッカーと思われている。
VBAマクロで作ったなんちゃってツールを3時間で作れるほうが、
perlやruby/pythonで、より少ない時間で作ったツールよりも凄く思われてしまう。
そして、それができるヤツの方が、Unix技術者よりもよりハッカーであり、技術力があると思われている。
ブラウザを例にしたが、
javascriptでalert/confirmを出すよりも、vbscriptでMsgBoxの方が多くのことができるから、
javascriptでNumberの計算よりも、vbscriptでDecimalを使った方が倍密度の計算ができるから、
vbscriptを駆使できるヤツは、凄く重宝される。
いいか、javascriptで汎用的に書くのなんてナンセンスだ。javascriptなんて捨てちまえ、覚えるのはJScript実装(WSH)だ。
この業界、何が不満になるかというと、
MSの、もっというとWindowsのことしか知らないヤツが多すぎるということ。
そういうヤツらは、Windowsだったらこんなこともできるのに、なぜUnix/Linuxだとこんなこともできないのか。と言う
そういうヤツらは、Windowsの未修正バグの合間を縫いながら中途半端な実装しかしない。
だって、中途半端(もしくは大雑把)な実装で動いているものの中で動くから。それ以上に実装しようとしてもできないのだ。
いいか、win32のメッセージングの仕組を覚えるんだ。無理矢理send_keyみたいなコードを書けるようにしろ。
コマンドを連結するよりも、結果に近いコードを書くんだ。線形になろうがヤツらは気にしないだろう。
何故か。
それは、.NETで作ればお客さんの要望が実現でき、Excelと連携できるからだ。
ヤツらは、C/Sの世界でこそ役に立つ技術者だが、Webの世界に連れてきてはならない。すぐに実装がIEだけになる。
ヤツらにLLを覚えさせるのは無理だ。
クロージャなんて知らないし、高階関数やカリーなんてコードを教えてみろ。後から辛くなるのは自分だ。
ヤツらにはPHPを教えておけ、それだけで満足する。すごいヤツになった気にさせれる。
バッドノウハウ慣れしているヤツらはそれを使ってコードを書いてもらえ、rubyで書かせるよりも修正が20倍楽だ。
いいか、まとめるぞ。
今まで一生懸命Unixを勉強してきたのは無駄だ。いますぐ忘れるんだ。
Excelを今から覚えろ。VBAを覚えろ。そしてMSの動きを身に着けるんだ。
Windowsでは単位がFormだ。それが標準出力と標準入力と思え。ときどきSheetとかWorkbookになるぞ。
ストリームやファイル操作には気をつけろ。Unixの気分でいると思わぬところで抜けが出るぞ。
IRCは使うな。Jabberを使うな。メッセンジャーを使え。移行のお薦めはGaimだ。Windows版がある。
viの使用頻度を減らせ、変なコマンドを身に着ける前に、秀丸マクロを書けるようにしろ、Notepadのショートカットを覚えとけ。
BindとかApache(Httpd)の知識はいらない。IISだ。ActiveDirectoryだ。
文字コードはCp943cを何がなんでも押せ。Shift_JISっていう大雑把な伝えかたはダメだ。絶対cp943cにしろ。UTF8/UTF7との格闘で身も心もぼろぼろになるぞ。
汎用性なんて無いんだ。Windowsというプラットフォームがあれば。
ああ、心が渇いていく。