Facebookユーザーを標的にしたメール詐欺に対抗してみた

2009年10月31日

Filed under: Linux,sendmail — admin @ 4:39 PM

最近、フィッシングサイトへの誘導メールがよく来る。なりすましはFacebookである。
ググってみたらどうやら今全世界で流行っているらしいですねー。

#ニュース記事
Facebookユーザーを標的にしたメール詐欺--トロイの木馬「Zeus」で個人情報を盗む

メールのくる間隔としては、1日に2~3通は来るのでかなり迷惑。

ってことで、送信元ドメインごとメール受信を拒否することにした。

ウチはsendmailなので、まず設定ファイルを修正する。

CODE:
  1. [root@host ~]#vi /etc/mail/access
  2. #追記↓
  3. facebookmail.com  REJECT

"[ドメイン名] REJECT" と記述することで、このドメインのメールはすべて受信拒否にする。
次に、アクセスファイルをデータベースに変換します。変換にはsendmailに付属のmakemapコマンドを使用します。
その後、sendmailを再起動すれば設定が反映されます。

CODE:
  1. [root@host ~]# makemap -v hash /etc/mail/access.db </etc/mail/access
  2. [root@host ~]# /etc/rc.d/init.d/sendmail restart

これで指定ドメインのメールが拒否できます。
ちなみに受信したい場合は、"RELAY" を使うことでメールを受信することができるようになります。

フィッシング、こわいよ、フィッシング。

JavaScript OOP入門編2

2009年10月28日

Filed under: JavaScript — admin @ 2:19 AM

こんぬつわ。JavaScript OOP入門その2です。久しぶりです。
ちなみにその1はこちらです。

僕自身もJavaScript、そんなによくわかってる訳ではないのですが、つらづら書いていきまする。

まず、型ってものをつくります。
Javaでいうところのクラス的なものです。JavaScriptはClassというものが存在しないので、functionで定義します。

JavaScript:
  1. var ObjectA = function(){
  2.     this._var;
  3.     this._method = function(arg){
  4.         return arg;
  5.     }
  6. }

1行目が型の定義になっています。functionになっていれば書き方は自由でおkじゃないかと。
そして、このObjectAがもっている子要素オブジェクト(JSはすべてがオブジェクトとして扱う)は、型のない"_var"プロパティと、引数を返すだけの"_method"メソッドが定義されています。ObjectAの子要素として定義するため、"this"を使って定義しています。この"this"はObjectA自身への参照となります。

そして、この型はまだ実体化していないため、実体化して、実際に使える状態にします。

JavaScript:
  1. var objectA = new ObjectA();
  2. objectA._var = 'hello world';
  3. alert( objectA._method( objectA._var ) );

1行目で ObjectAをnewしてobjectAとして実体化します。設計図から実際に実体を作った状態です。
2行目では、_varプロパティにString型の"hello world" を代入しています。
3行目では、_methodを使って、_varに代入された値を返し、それをアラート表示しています。

なんだか文章が堅くなってつまんなくなってしまいました・・・。
次回もっとわかりやすく書こうと思います。

なんだか説明あってねーよ!まちがってんよ!とご指摘などありましたら恐縮ではございますが、ご指摘いただければ助かります。

ってな訳でまた来週!(やるのかな?)

Patchmatchが変態すぐるwww – Adobe Photoshop CS5

2009年10月17日

Filed under: Adobe — admin @ 2:17 AM

Photoshop CS5 がやばすぐる件。
前回のFlash Professional CS5 の記事でも書いたが、CS5がなんだかすごいことになっているらしいwwwww

今回はPatchmatchを紹介します。

他にももろもろ変態ツールがたっぷり搭載されているらしい。

CS5、やばいよ、CS5。
ってかCS3やCS4すら使いこなせてませんよ。

起動スクリプトの作成 /etc/rc.d/init.d/

2009年10月11日

Filed under: Linux,bash — admin @ 2:34 AM

bash、面白いよ、bash。

bashを全然使いこなせないので、ちょっと頑張ってもろもろ勉強せなあかんですなと思ったので、まずはいつも手作業で行っていた作業を自動化していくことにした。

ウチのサーバちゃんでは、sambaでファイルサーバも使っているのだが、バックアップもかねて、外部HDDをUSBでつないで、それをsamba内で管理しているディレクトリにマウントして使っている。
このマウント作業を手作業で行っていたため、マシンをリブートした時に、また再度手作業で行わなくてはいけない。毎回これはめんどくさいので、いい加減自動化しようと思ったのがことの経緯であるわけです。

外部HDDはwindowsでも使えるようにNTFSでフォーマットしてあるため、下記のコマンドでいつもマウントしている

CODE:
  1. host# mount.ntfs-3g /dev/sdb1 /home/hiroki/samba/mnt/

このコマンドをサーバが立ち上がった時に自動でブートするようにする。

/etc/rc.d/init.d/ ディレクトリにbashでスクリプトを組む。
startとstopで起動、終了を制御するため、start関数とstop関数を用意する。

CODE:
  1. host# vi /etc/rc.d/init.d/mnt_music

スクリプトの中身

CODE:
  1. #!/bin/bash
  2.  
  3. # chkconfig: 2345 97 97
  4. # description: mnt_music
  5.  
  6. start(){
  7.     if mount.ntfs-3g /dev/sdb1 /home/hiroki/samba/mnt/; then
  8.         echo "mount success!!"
  9.     fi
  10. }
  11. stop(){
  12.     if umount /home/hiroki/samba/mnt/; then
  13.         echo "umount success!!"
  14.     fi
  15. }
  16.  
  17. case "$1" in
  18.     start)
  19.         start;;
  20.     stop)
  21.         stop;;
  22. esac

3行目の "# chkconfig" は、chkconfigに登録できるようにする記述である。
数値部分は、「ランレベル」「起動プライオリティ」「終了プライオリティ」の順である。

スクリプトを実行する。

CODE:
  1. host# /etc/rc.d/init.d/mnt_music start
  2. umount success!!

ランレベル3に、シンボリックリンクを登録する。

CODE:
  1. host# ln -s /etc/rc.d/init.d/mnt_music /etc/rc3.d/S97mnt_music

chkconfigに "mnt_music" を登録し、起動時のブートを有効にする。

CODE:
  1. host# chkconfig --add mnt_music
  2. host# chkconfig mnt_music on

これで、毎回手作業でコマンドを実行することなく、自動でHDDをマウントすることができるようになった。

ActionScript3.0でiPhoneアプリ開発がAdobe CS5で実現!?

2009年10月9日

Filed under: ActionScript3,Flash — admin @ 1:43 AM

ActionScript3.0、はじまったな・・・。
iPhoneアプリをObjective-CじゃなくてもAS3で開発できちゃうってんなら、かなり敷居が下がりまくりだよね。

Flash Professional CS5(英語サイト)
Flash Professional CS5 のアナウンスと iPhone

こんなことができるらしい。

  • AS 3 のプロジェクトから iPhone, iPod Touch 用アプリケーションの書き出し
  • Text Layout Framework (TLF) を用いた新規のテキストコントロールによる新しい表現
  • XML ベースの FLA ファイル (ソース管理システムを使ったバージョン管理が可能に)
  • コードスニペットパネル (事前に作成済みのコードをプロジェクトでそのまま利用)
  • Flash Builder の統合 (ActionScript エディタとして使用できる)
  • ActionScript エディタの改良 (コードヒントや自動補完機能など)

これはActionScript3.0の開発者が一気に増えそうな予感がしまくりんぐですよ!

それに比べ、googleのAndroid使ったみましたが、動きはもっさりだし、あいつイマイチっす。やっぱりJavaってとこがあかんじゃないのかなー。重いし、iPhoneに慣れてしまっていると、どうしてもiPhoneと同じような操作しちゃうんだけど、けっこう融通が利かない。ユーザビリティもいまいちでwebブラウジングもイマイチだし、売れても流行らないと思う。結果、売れないと思う。

JavaScriptやってる人は今からActionScript3.0にどっぷりいっちゃって良いと思うよ!(^ω^)

import.js って流行ってるの?ってことで自分なりにつくってみた

2009年10月8日

Filed under: JavaScript — admin @ 12:43 AM

いつもならばJSファイルの読み込み方って、

HTML:
  1. <html lang="ja">
  2.  
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <meta http-equiv="Content-Script-Type" content="text/javascript" />
  5.  
  6. <script type="text/javascript" src="./xxxxxxx.js"></script>
  7. <script type="text/javascript" src="./yyyyyyy.js"></script>
  8. <script type="text/javascript" src="./zzzzzzz.js"></script>
  9.  
  10. </head>
  11.  
  12. <h1>hello test</h1>
  13.  
  14. </body>
  15. </html>

みたいな感じで、headタグ内に読み込むJSファイルを直接書くけど、最近流行ってるのか、それとも廃れたのかわからないが、こんな感じのソースを見た。

HTML:
  1. <script type="text/javascript" src="./import.js"></script>

1つのJSファイルだけを読み込んで、その import.js にグローバルで読み込みたいJSファイルを document.write() で読み込むようだ。

そのソースには、

JavaScript:
  1. document.write( '<script type="text/javascript" src="./xxxxxxxx.js"></script>' );
  2. document.write( '<script type="text/javascript" src="./yyyyyyyy.js"></script>' );
  3. document.write( '<script type="text/javascript" src="./zzzzzzzz.js"></script>' );

というように書かれていた。

コレはなかなか面白いし、まとまって良いなと思ったので、自分も簡単にまとめてつくってみた。

JavaScript:
  1. /**
  2. *
  3. *   import.js
  4. *   JSファイルをまとめて読み込む
  5. */
  6. (function(){
  7.     var importSrc = function(e){
  8.         return '<script type="text/javascript" src="'+ e +'"></script>' + "\n";
  9.     }
  10.     var path = './static/common/js/';
  11.     //jQueryフレームワーク
  12.     document.write( importSrc( path + 'jquery-1.3.2.min.js' ) );
  13.     //サイト全体で使用するJS
  14.     document.write( importSrc( path + 'global.js' ) );
  15. })();

scriptタグを毎回書くのもめんどくさかったので、importSrc() というショートカット関数をつくってまとめてみた。

import.js を使ってみんなまとめちゃえば良いと思うよ!
そのページ独自で使うJSはまとめちゃダメだと思うけどねw

フルFlashのサイトにHTMLフッターをつけてみる

2009年10月2日

Filed under: Flash,JavaScript — admin @ 4:39 PM

フルFlashのサイトに対して、HTMLフッターをつけたいという要望があったので、つけてみることにした。
Flashの埋め込み方は、swfobject.js(versionは1.5)を使って埋めてみた。

HTML:
  1. <div id="content"><!-- ここにFlashがロードされます --></div>
  2. <script type="text/javascript" src="js/swfobject.js"></script>
  3. <script type="text/javascript">
  4. // <![CDATA[
  5.  
  6. var so = new SWFObject('swf/sample.swf', 'website', '100%', '100%', '9', '#ffffff');
  7. so.useExpressInstall('swf/expressinstall.swf');
  8. so.write('content');
  9.  
  10. // ]]>
  11. </script>

これでFlashがフルサイズで読み込まれる。

さて、今回はこれに対して、Flashの下に20pxばかりのHTMLでつくったフッターを埋め込みたい。
実装内容は下記の通り。

Flashを表示するエレメントの親要素に、全体レイアウトを設定する<div id="wrapper">を追加。この要素が実際にリサイズすることになる。
ウィンドウのサイズを取得して、それから20px引き、下部にHTML部分がピタっと出現するつくりにする。
フッターは、常にウィンドウ下部に固定することにする。

HTML:
  1. <div id="wrapper">
  2. <div id="content"><!-- ここにFlashがロードされます --></div>
  3. </div>
  4. <div id="footer">HTMLフッター部分</div>
  5. <style type="text/css">
  6. body {
  7.     position: relative;
  8. }
  9. #footer {
  10.     width: 100%;
  11.     height: 20px;
  12.     background: #000;
  13.     position: absolute;
  14.     left: 0;
  15.     bottom: 0;
  16.     color: #fff;
  17. }
  18. </style>
  19. <script type="text/javascript" src="js/swfobject.js"></script>
  20. <script type="text/javascript">
  21. // <![CDATA[
  22.  
  23. var so = new SWFObject('swf/sample.swf', 'website', '100%', '100%', '9', '#ffffff');
  24. so.useExpressInstall('swf/expressinstall.swf');
  25. so.write('content');
  26. (function(){
  27.     var resizeTo = function(e){
  28.         var winHeight = document.all ? (document.body.clientHeight - 20) : (window.innerHeight - 20);
  29.         var wrapper = document.getElementById(e);
  30.         wrapper.style.width = '100%';
  31.         wrapper.style.height = winHeight + 'px';
  32.     }
  33.     window.onload = function(){
  34.         resizeTo('wrapper');
  35.     }
  36.     window.onresize = function(){
  37.         resizeTo('wrapper');
  38.     }
  39. })();
  40.  
  41. // ]]>
  42. </script>

これでHTML要素のフッターを下部に維持しつつ、フルFlashを実現できる。
ってか、20pxあいてる時点でフルFlashじゃないじゃん!とかいう突っ込みはやめて~w