2010/10/21

IO Error アップローダー

先日テストしたアップローダー、ぐんぐんアップロード出来ていたはずが、
組み込みに使う為にセッティングを変えてテストしようとするとアップロードできない。
その時4つほど作ったけどどれも同じ反応。

1. アップロードできた風だがフォルダにデータは上がっていない。
2. もしくはキュー状態のまま。
3. とにかく即IO ERRORを返してくる。

フォルダのパーミッションか?変えてみたが効果なし。
それともサーバー側で拒否の呪文を入れられているか?

htaccessでの呪文。あまり入れたくないけど。

SecFilterEngine Off
SecFilterScanPOST Off


書き換えようとした際に思い出した!
いろいろアップロードされると困るので、
上層ディレクトリからhtaccessでBASIC認証入れてた!

解除したら元のように動いた。

2010/10/19

Rails環境をMAMPのhtdocs以下に作成

sampleというフォルダを作ってこれをRailsのフォルダとします。
MAMP以下に指定するばやい。長いけど忘れないように全て書いておきます。

$ rails new /Applications/MAMP/htdocs/sample
create
create README
create Rakefile
create config.ru
create .gitignore
create Gemfile
create app
create app/controllers/application_controller.rb
create app/helpers/application_helper.rb
create app/views/layouts/application.html.erb
create app/mailers
create app/models
create config
create config/routes.rb
create config/application.rb
create config/environment.rb
create config/environments
create config/environments/development.rb
create config/environments/production.rb
create config/environments/test.rb
create config/initializers
create config/initializers/backtrace_silencers.rb
create config/initializers/inflections.rb
create config/initializers/mime_types.rb
create config/initializers/secret_token.rb
create config/initializers/session_store.rb
create config/locales
create config/locales/en.yml
create config/boot.rb
create config/database.yml
create db
create db/seeds.rb
create doc
create doc/README_FOR_APP
create lib
create lib/tasks
create lib/tasks/.gitkeep
create log
create log/server.log
create log/production.log
create log/development.log
create log/test.log
create public
create public/404.html
create public/422.html
create public/500.html
create public/favicon.ico
create public/index.html
create public/robots.txt
create public/images
create public/images/rails.png
create public/stylesheets
create public/stylesheets/.gitkeep
create public/javascripts
create public/javascripts/application.js
create public/javascripts/controls.js
create public/javascripts/dragdrop.js
create public/javascripts/effects.js
create public/javascripts/prototype.js
create public/javascripts/rails.js
create script
create script/rails
create test
create test/performance/browsing_test.rb
create test/test_helper.rb
create test/fixtures
create test/functional
create test/integration
create test/unit
create tmp
create tmp/sessions
create tmp/sockets
create tmp/cache
create tmp/pids
create vendor/plugins
create vendor/plugins/.gitkeep
で作成されました。

Ruby on Rails に必要

インストールしたサーバーが10.4(Tiger)なので、付属するXCodeのバージョンは2.1
Rubyのgemsをインストールする際に警告される。

Warning: The installed version of Xcode (2.1) is known to cause problems. Version 2.5 or later is recommended on Mac OS X 10.4.

そのままインストールは続行されるが途中zlibの解凍作業でエラーが出る。
On Mac OS X 10.4, zlib 1.2.5 requires Xcode 2.4.1 or later but you have Xcode 2.1.
Error: Target org.macports.extract returned: incompatible Xcode version
Log for zlib is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_archivers_zlib/main.log
Error: The following dependencies failed to build: ruby openssl zlib readline
Error: Status 1 encountered during processing.
To report a bug, see

結局のところXcode2.5以上のバージョンを用意せよとのこと。
アップルのデブ専に行ってみるしか無い。

あった!
Apple Developer の Downloads & ADC Program Assets
以下の developer toolsのページ。
コマンドFで 『Xcode』を探すと
Xcode 2.5 Developer Tools

Xcode 2.5 is an update release of Xcode developer tools, providing bug fixes over Xcode 2.4.1. Xcode 2.5 can be installed on Tiger (Mac OS X 10.4) or on Leopard (Mac OS X 10.5). Xcode 2.5 may be used on Leopard along side the Xcode 3.0 tools, providing a smoother migration path to Leopard for those projects not immediately ready to move to the Xcode 3 tools. See the release notes for Leopard support details and related packaging changes.
Download Name File Size Date Posted
Xcode 2.5 - Release Notes (PDF) 222 KB 02 Nov 2007
Xcode 2.5 Developer Tools (Disk Image) 902.9 MB 30 Oct 2007

発見。3.0よりも後に出ている。
Xcode3.0は10.5のインテル用なので無視。

Mac OS 10.4にRuby on Rail

まずはMacPortを入手。
これは開発に必要なパッケージをインストールするのに便利なモノ。
必要なバージョンはこちらから探して入手=>Mac Port

.dmgでパッケージが出てくるのでインストール。
インストールしたら、最新版にアップデート。
ターミナルからアップデートのコマンドをウツ。
$ sudo port -v selfupdate

インストール後、以下のコマンドを入力して
$ echo $PATH
『/opt/local/bin』が行頭に入っていれば成功。
/opt/local 以下にインストールしたパッケージが格納されます。

次にRubyGemのインストール
Rubyのライブラリを管理する便利なツールです。
先ほどインストールしたMacPortを利用してインストール。
$ sudo port install rb-rubygems

Tigerに標準装備のRubyは古いバージョンなので
以下のコマンドで最新バージョンになっているか確認。
$ ruby -v

RubyGemsが入ったので、あとはRailsのインストール。
Gemコマンドを使ってインストール。
$ sudo gem install rails --include-dependencies

以上でRailsのインストールは完了。

2010/10/17

MAMPの設定

あまり使わないローカルサーバーの設定。
使いたいときにアクセスすると、スタートページにはこんな表示。
Error: Could not connect to MySQL server!

MySqlと接続できていないとのことなので、設定ファイルを確認。
場所は以下の通りで、『$link = @mysql_connect』の行を探す。
/Applications/MAMP/bin/mamp/index.php

ルートパスワードを設定していないと駄目なので、先にそちらを設定して
設定したパスワードをこちらに入力してホゾン。
修正前
$link = @mysql_connect(':/Applications/MAMP/tmp/mysql/mysql.sock', 'root', 'root');

修正後
$link = @mysql_connect(':/Applications/MAMP/tmp/mysql/mysql.sock', 'root', 'パスワード');

関連するデータベースユーティリティーにも同じ設定をする。
/Applications/MAMP/bin/phpMyAdmin/config.inc.php

修正前
$cfg['Servers'][$i]['password'] = 'root';

修正後
$cfg['Servers'][$i]['password'] = 'パスワード';

これでMAMP再起動してつながればオッケ。

2010/07/27

htmlメール作成

個人的には無くてよいと思ってる。
しかし要求される事が比較的多いので、注意点を纏めておく。

  1. 文字コードはiso-2022-jpで作成する(メールの文字コードはiso-2022-jp)
  2. HTML 4.01 Transitionalで書く
  3. テーブルレイアウトで作成する
  4. デザイン幅は800px以下
  5. cssはインラインで書く(内部外部問わずJavaScriptなどは使わない方が良い)
  6. センタリングは、tableの入れ子で寄せる
  7. イメージはすべて絶対アドレス(http://~)で指定する
  8. <base></base>の指定を行う

で、ページを作ったらsafariでそのページを見てメールで送信

2010/04/14

Firefox2の脆弱性回避

IEと、Firefoxのバージョン2.0以降をインストールしているユーザーは、「非常に重大」なリスクにさらされている。攻撃者は、悪質なサイトをユーザーにIEで閲覧させることで、「firefoxurl://」というURLハンドラを利用しながら、ブラウザとウェブ上の特定のリソースとの間でやりとりをさせることが可能になる。この結果、ユーザーのシステムが遠隔地から悪用される可能性がある。
Friedrichs氏の指摘によると、10月にバージョン2がリリースされたFirefoxは人気を博しているが、IEはWindows OSに付属しているため、大半のFirefoxユーザーのPCにはIEもインストールされているという。

この問題のリスクに直面している人の数は膨大な可能性があると、同氏は加えた。

SecuniaのKristensen氏は、「新しいURIハンドラは、『firefoxurl:// 』が呼び出されたときに、サイトがFirefoxを強制的に起動できるように、Windowsシステムでサポートされた。『ftp://』や『http: //』などがほかのアプリケーションを呼び出すのと同じだ」と語っている。

しかし、FirefoxのURIハンドラには登録方法に問題があり、「firefoxurl://」を起動すると、(プログラムを呼び出して特定のタスクを実行するための)パラメータが、MicrosoftのInternet ExplorerなどのアプリケーションからFirefoxにすべて渡されてしまう。

攻撃者が「chrome」コンテキストを使い、Firefoxで実行可能なコードをユーザーのシステムに挿入する場合があると Kristensen氏は述べる。chromeとは、表示ページの外側にあるフレームのユーザインタフェース部品のこと。

Kristensen氏は、「Windowsは、アプリケーションにとって危険な入力を適切に把握する手段を持ち合わせていないため、URIハンドラの登録は慎重に行うべきである。たとえば、Windowsは『chrome』という文字列がFirefoxにとって危険なことを知るすべを持ち合わせていない」と語っている。
悪質なウェブサイトを回避する以外にも、システム管理者がFirefox URLのURLハンドラを削除したり、Firefoxによるchrome入力の受け入れ方法を変えることができると、Kristensen氏は語っている。

コチラの記事より


IEとFirefoxを一緒にコンピュータに入れている事で起こる問題ですね。Thunderbirdを一緒に利用している場合でもあるようですが、2.0.0.5では修正されている模様。
コマンドライン引数のインジェクションなので、レジストリの以下のキーを無効にしておけば良いようです。
HKEY_CLASSES_ROOT\FirefoxURL