「shift_jis」を含む日記 RSS

はてなキーワード: shift_jisとは

2008-10-20

[]今日増田情報セキュリティの日

私は単なる一増田でしかないのだが、なんとなく今日増田情報セキュリティの日とすることに決めた。

なぜって、今日は、年末年始という忙しく、そして狙われやすい時期をはさみ、2月2日からきっかり103日前だからである。

決して、はまちちゃんとエガミ君のやり取りがあったとか、増田セキュリティ関連の話題に乏しいとか思ったからではない。

さて、一口にセキュリティといっても、その幅は広い。まずは定番から攻めるのが定石であろう。何が定番なのかについては、例えば「Webアプリ脆弱性オタがふつーのSEの彼女に脆弱性世界を軽く紹介(ry」などが参考になるだろう。

しかし、たとえば「初心者はPHPで脆弱なウェブアプリをどんどん量産すべし」といったような初心者には、まずは10というよりも1から脱初心者していただくのがよいであろう。

そんなわけで、今年のテーマXSSとする。繰り返すが、はまちちゃんとエガミ君のやり取りがあったとか、XSS以外のネタが少ないとかではない。

さて、このように、今年のテーマXSSとなった。それではXSSとは何か、どのように起き、どう対処すればよいのか、そのような実例ちょうど良いエントリが「エガミくんの脆弱性のやつ」である。

さらに、このエントリをよんで、実際に「XSSしたい><」と思った人に読んでいただきたいのは「今昔さっき物語」であろうか。

さて、非常に簡単にXSSについて書いたが、このXSS、実はその他のさまざまな脆弱性の基礎でもある。

出力がHTMLならXSSだが、SQLならSQLインジェクションだし、シェルならコマンドインジェクション、メールヘッダならメールヘッダインジェクション等々になりえる。とくに、初心者にとってシェルは予想外のところで使われているから、気をつけよう。

その他セキュリティに関心があればsecurityタグお勧めしたい。セキュリティよりもsecurityの方が濃いのである。

p.s.

最後にこのエントリメモしておく

2008-03-03

Shift_JISにおける危険な文字まとめ

今時Shift_JISプログラミングするバカな奴はいないだろうけど折角まとめたので公開

2バイト目がアスキーコードど丸被りしているものを列挙する

@[\]^_`{|}~
405B5C5D5E5F607B7C7D7E
81 ????±×
82
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
405B5C5D5E5F607B7C7D7E
@[\]^_`{|}~

縦軸が1バイト目で、範囲は81ー9F、E0ーFC

横軸が2バイト目で、アスキーコードを含むもの。

# ちなみに「??」って表示されてるのはまー外字部分だしそんなに気にしなくていいかと

これらの文字コードには気をつけること。

特に2バイト目が5C(\)ものは要注意。

"や'と引っ付くのでまともにプログラミングできない。


 print '予定表';
 print "無能";

上記コードPerlでもPHPでもエラーとなる。

特にPerlの場合は文字列中に展開できる構文が多いのもあり、色々なエラーを出せるので注意が必要だ。


 print qq[夕焼け小焼け]; # 「夕」の2バイト目でエラー
 print "警察24時!";     # @24という変数とみなされる

また、正規表現でも厄介な問題が起きまくるので注意すべし。


my $str = 'ダ';
print 'match' if $str =~ /_/; # マッチしちゃう

こういう様々な理由からShift_JISプログラミングをしてはいけないわけだ。

だからUTF8を使うべきだ。UTF8が無理でもせめてEUC-JPのどちらかでプログラミングすることをオススメする。

まーEUC-JPEUC-JPShift_JISと一部文字コードが重なっているので正直扱いにくいのでやっぱりUTF8を強く推奨する。

プログラ増田のあなぐら

2007-09-01

9月になったし、もうそろそろ書いておくか

これから就職活動するバカはいないだろうけど、そういう人もいるだろうから少し書いておこう。

どちらかというと、アンチMS派なUnix技術者Windowsだけの世界で仕事をする辛さを。

Unix技術者は、業務実績にSolaris/AIX/Linuxって書いてあってもちゃんと質問しろ。Windows仕事は無いですよね?って。

僕が食べるために職を手にしているこのIT業界というのは、バッドノウハウMicroSoftExcelで出来ている。

その為、僕が手にしたUnixの知識は、特定の仕事以外でしか役に立たないし、使わない。

viだろうが、TeXだろうが、Xの知識よりも、MFCVBAのちょっとした知識のあるヤツが上にみられる。

ExcelWindowsの知識があればそれだけで仕事になるからだ。

いいか、viTeX、Xなんて捨てちまえ、Excelがあればそれでいいのだ。

Unix技術者でいうハッカーとはなんだろう。

MSでは、ActiveXを使ってCOMを操作し、クライアントレジストリを操作し、IE単体でできないことをやってしまうヤツがハッカーと思われている。

VBAマクロで作ったなんちゃってツールを3時間で作れるほうが、

perlruby/pythonで、より少ない時間で作ったツールよりも凄く思われてしまう。

そして、それができるヤツの方が、Unix技術者よりもよりハッカーであり、技術力があると思われている。

ブラウザを例にしたが、

javascriptでalert/confirmを出すよりも、vbscriptでMsgBoxの方が多くのことができるから、

javascriptNumberの計算よりも、vbscriptでDecimalを使った方が倍密度の計算ができるから、

vbscriptを駆使できるヤツは、凄く重宝される。

いいか、javascriptで汎用的に書くのなんてナンセンスだ。javascriptなんて捨てちまえ、覚えるのはJScript実装(WSH)だ。

この業界、何が不満になるかというと、

MSの、もっというとWindowsのことしか知らないヤツが多すぎるということ。

そういうヤツらは、Windowsだったらこんなこともできるのに、なぜUnix/Linuxだとこんなこともできないのか。と言う

そういうヤツらは、Windowsの未修正バグの合間を縫いながら中途半端な実装しかしない。

だって、中途半端(もしくは大雑把)な実装で動いているものの中で動くから。それ以上に実装しようとしてもできないのだ。

いいか、win32のメッセージングの仕組を覚えるんだ。無理矢理send_keyみたいなコードを書けるようにしろ。

コマンドを連結するよりも、結果に近いコードを書くんだ。線形になろうがヤツらは気にしないだろう。

ヤツらは、javapythonをバカにする。

何故か。

それは、.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というプラットフォームがあれば。



ああ、心が渇いていく。

ログイン ユーザー登録
ようこそ ゲスト さん