「PASSWORD」を含む日記 RSS

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

2013-07-21

password」のハッシュ値

MD5は「5f4dcc3b5aa765d61d8327deb882cf99」

SHA1は「5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8」

生年月日(数字8桁)も過去100年分(36500+閏年分)あればだいたい足りるよね

2013-06-26

通販サイトは案外セキュリティうんこかもしれない

2年前、とあるちいさなちいさな制作会社で働いてた。

表向きは制作会社だけど、当時はエロサイトとか作ってた。

今はどうしてるかしらない。

そこで運営してた自社サービスの一つに食べ物系の通販サイトがあったんだけど、そこの管理がすっごいずさんだった。

なにせ、当時の管理者のログインIDパスワードがADMINとPASSWORD(一応フェイク)なの。

EC-CUBEからURLのあとにadmin/ってうったら管理画面にとべちゃうのに。

これはまずいでしょって訴えたけど改善されなかった。

たぶん今はさすがにIDパスワード変わってると思うけど、

あれ以来得体のしれない会社の運営してる弱小通販サイトは怖くて使えない。

2013-04-09

パスワード欄は単なる文字列ではなく、キーボード入力順で判別したらいいんじゃないかな。

たとえば見た目は「password」でも実は「p」「a」「s」「s」「w」「a」バックスペースキー」「o」「r」「d」と入力しないと認証が通らない、みたいな。

2013-02-21

http://anond.hatelabo.jp/20130221085839

アカウントパスワード程度なら破られにくさよりも覚えやすさ優先でいいんじゃないのかな。

覚えられないからって紙に書いてPCに貼りつけてたりすれば無意味だし。

明らかに推測しやすパスワード(「password」とか「12345」とか)でなければ。

2011-11-09

そういうネットワーク

affected そういうシステム

http://www.haijin-boys.com/weblog/index.php?fuseaction=weblog.entryInquire&entry_id=4acb30bd8ce103.11540234

● 動いているネットワークには触るな。

● 配線図を信用するな。

● 特権権限のパスワードが「password」の機器は誰もログインしていない。

設計は常に破綻している。

● 致命的な不具合が発生した時、担当者はもういない。

運用保守担当者はただの電話番。

● 冗長構成は動かない。

機器触っている時に「あっ。」って言う人は信用するな。

エンタキーを打つときの音が大きい人は信用するな。

● しばらくアラームが来ない場合、何らかの問題が起きている。

● ググれ。

紫色ネットワークは再構築が必要である

● 原色を多用したネットワーク機器メーカーが消える

機器パッケージ燃えやすい

再起動は命がけでやれ。

セキュリティパッチは死を覚悟してあてろ。

バックアップは戻らない。

ログインバナージョークに毎回驚く。

素人は素直に申し出ろ。

● インシュロックと一緒にファイバーも切ってしま

● 手順書も読めない

● 手順書は読めるが作れない

● 手順書がないと作業できない

● だいたい手順書が間違っている

● 早業で障害対応したのに怒られる

連休前日や金曜日に障害発生

飲み会の日は夕方障害発生

コンフィグを保存し忘れる

ベンダー資格を持っているやつほど何もできない

デフォルトオリジネートは消える

機器ネットワークにつまらない名前をつける

● つまらない名前ほど使われる

● 堅い名前をつけても誰も呼ばない

MUAにこだわる

キーボードにこだわる

OSにこだわる

NOCIPアドレス重複はよくある

● だれだNOCにこのスイッチつなげたの

● そのスイッチのせいでSTP走って混乱

● 攻撃だそれフィルタと安易に言う奴が多い

● それはだいたい管理職

● 攻撃されている顧客には連絡が取れない

UTF-8半角カナ、丸数字文字に厳しい

DNSのことは知らない

● 経路交換は政治

落雷に敏感だ

終電がなくなるとNOCに帰巣

生き字引みたいな人が居る

● その人のデスクはだいたい汚い

椅子の座り方をしらない

椅子を並べて寝るのが上手い

ラックの間で昼寝する

● 光ケーブルの受光は目で確認しちゃう

DC電源が怖い という話が怖い

● 低レイヤの事は以外としらない

● ケーブルは埋め殺す

● 埋め殺されたケーブルが多くてケーブル撤去できないのでそのケーブルも埋め殺す

2011-05-19

「これからの「パスワード」の話をしよう」のバグについて突っ込む

Web屋のネタ帳( http://neta.ywcafe.net/ )様の

これからの「パスワード」の話をしよう( http://neta.ywcafe.net/001184.html )で

紹介されているパスワードハッシュ化のバグについて突っ込んでみる

バグといっても大きなものではな

 「1回ハッシュ化を解読できただけ、プレーンパスワードを入手することが可能である

というものである

問題の部分はここ

    /**
     * 平文のパスワードハッシュ&stretchするメソッドです。
     * loop回数は1000としていますが、999でも1001でもお好みでどうぞ。
     * ただしループ回数は処理時間に直結しますのでほどほどの数値で。
     */
    private static final String hashAndStretch(String plainPasswd, String salt) {
        int loop = 1000;
        String hashedPasswd = "";
        for (int i = 0; i < loop; i++) {
            hashedPasswd = DigestUtils.sha256Hex(hashedPasswd + plainPasswd + salt);
        }
        return hashedPasswd;
    }

ここのロジックトレースしてみると

凡例

プレーンパスワードPASSWORD

ソルト:SSSSSSSS

トレース

最終的なハッシュパスワードが「XXXXXXXX」とする

XXXXXXXX ←  DigestUtils.sha256Hex("YYYYYYYY" + "PASSWORD" + "SSSSSSSS")

クラッカーがXXXXXXXXXのハッシュ値を解析し、元の文字列が「YYYYYYYYPASSWORDSSSSSSSS"」と判明したとする。

この時点で元文字列の中にプレーンパスワードが含まれていることになる。

また、ハッシュ化された文字列には「0123456789abcdef」の文字しか含まれておらず、

 「それ以外の文字が含まれていた場合容易にプレーンパスワードはないか

と推測可能である

一般的なパスワードには少なからず「0123456789abcdef」以外の文字が含まれているだろうし、

意味のある言葉パスワードに使っていた場合一目瞭然だ。

上記のことをふまえてプログラムを修正すると。。

    /**
     * 平文のパスワードハッシュ&stretchするメソッドです。
     * loop回数は1000としていますが、999でも1001でもお好みでどうぞ。
     * ただしループ回数は処理時間に直結しますのでほどほどの数値で。
     */
    private static final String hashAndStretch(String plainPasswd, String salt) {
        int loop = 1000;
        String hashedPasswd = DigestUtils.sha256Hex(plainPasswd + salt);;
        for (int i = 0; i < loop; i++) {
            hashedPasswd = DigestUtils.sha256Hex(hashedPasswd + DigestUtils.sha256Hex(salt + i));
        }
        return hashedPasswd;
    }

プレーンパスワードループの外でハッシュ化し、

またソルトを毎回違う値にハッシュ変換することにより

元の文字列の推測を行いにくく修正した

2011-04-14

パスワード個人情報を扱うサービスを作る際に気をつけたこと

HTMLはわかるけど、サーバーサイドはお遊びでphpを触ったぐらいだったので、会員制でデータをためこむサイト作りに初めて挑戦した

今回重視したのは、「いか個人情報をお漏らししないようにして、万が一漏らしても被害を少なくするか」ということ。

世の中、有償サービスでもパスワードを平文で保存してるサービスが意外と多いらしいので、流出した時のリスクを少しでも減らせる対策として書きます

今回のシステム構成

サーバーロケットネットキャンペーンにでレンタルサーバ年1000円ポッキリプラン

クライアント側の処理HTML+CSS+jQuery(とプラグインもろもろ)
サーバ側の処理PHP
WebサーバーApache
データベースMySQL

個人情報こわい!

個人情報ビビる漏洩とかまじ困るし怒られるしこわい。

俺も巻き込まれたところでは、サミータウンがメールアドレスパスワードセットでお漏らししてお詫びに1ヶ月無料なにそれこわい

サミータウンだけならまだいいけど、メアドパスワードを他のサービスで共通化して使ってる情弱なので、

共通化してメアドパスワードをどこかのサービスが一箇所でも漏らすと、ヤフオクID乗っ取り事件みたいなことになる。

http://internet.watch.impress.co.jp/cda/news/2008/09/26/20967.html

だってできれば人様のメールアドレスパスワードとか預かりたくない。

万が一、肉親のメールドレス発見してパスワードにrapemeとか入ってたら明日からどういう顔すればいいかからない。

ググってみてもどこにも情報のってない。うーん困った。ダメもとで「個人情報ってどうやって保存したらいいんだろう。。。」

って、twitterでつぶやいたら、「住所とかは可逆暗号化でいいけど、パスワードハッシュで不可逆化しないとだめだよ!」

と、呪文のようなありがたい言葉を教えてもらった。

暗号化の種類

「住所とかは可逆暗号化でいいけど、パスワードハッシュで不可逆化しないとだめだよ!」

何のことかわからなったので、調べてみると、

・可逆暗号=元のデータに戻せる暗号化方式。

ハッシュハッシュ値を使った、元のデータに戻せない暗号化方式

うーん。。。よくわからん。。。

電話番号とか住所は、第三者が使用する情報なので、可逆が必要。パスワードは、認証しか使わないので、

ハッシュ値結果が一致すれば元のデータがわからなくてもOK、という方式なのでこういった暗号の使い分けをする。

●可逆暗号イメージ(もとにもどせる) 暗号キー開発者が指定する。
090-xxxx-xxxx →(暗号化)→ !'&%($% →(復号化)→ 090-xxxx-xxxxハッシュイメージ(もとにもどせない) 
登録passwordDBに保存)→(ハッシュ値抽出)→!"$#'$#="
ログインpassword →(ハッシュ値抽出)→!"$#'$#="
※二つのハッシュ値が合っていれば、パスワード一致として認証する。

暗号化の実現方法

可逆暗号電話番号とか住所とかに適用

今回はMySQL関数で実現した。encode関数暗号化して、decode関数でもとに戻す。

例えばtel_noという項目だけあるテーブルがあるとすると、

//データベースに保存する時
insert into テーブル名 (tel_no)  values (encode(tel_no,'暗号キー'));
//データベースから取得する時
select decode(tel_no,'暗号キー') from テーブル名;

これで、データベース格納時は暗号化(バイナリ化)されて、データベースから取り出してHTML表示する時に復号化はされる。

ハッシュパスワードかに適用

今回はphpのhash関数で実現した

ユーザ登録時>

$password=(フォームから取得)
$hash=hash('sha512',$password)
//ユーザ登録時は、ここで生成した$hashをデータベースにぶっこむ。

ユーザ認証時は、入力されたパスワードと、データベースパスワードが一致するかチェック。

ログイン認証時>

//フォームから入力されたパスワード
$input_password=(フォームから取得)
$input_hash=hash('sha512',$input_password);

//MySQLに保存されたパスワードを取得(略)
$db_hash==(データベースから取得)

//判定
if($input_hash==$db_hash)
	echo 'ログインしますよ!';
	//ここにログイン処理を書く
else
	die('メアドパスワードがあってないよ!');

これでもしSQLインジェクションとかでデータ流出しても、ハッシュ暗号パスワードに関してはまず解析されないはず。。。

可逆暗号データphp側の暗号キーが盗まれない限りバレない。。。はず。。。

暗号化する対象のデータをえらぶ

何でもかんでも暗号化するとコードが煩雑になるし、パフォーマンスにも影響でそうなので、

住所データ都道府県とか、漏れても良いような情報暗号しませんでした!!

本人が特定できなければ個人情報はないらしいので。。。

個人情報保護法
2条による定義個人情報」とは、生存する個人に関する情報であって、当該情報に含まれる氏名、生年月日その他の記述等により特定の個人を識別することができるもの(他の情報と容易に照合することができ、それにより特定の個人を識別することができることとなるものを含む。)をいう。

http://ja.wikisource.org/wiki/%E5%80%8B%E4%BA%BA%E6%83%85%E5%A0%B1%E3%81%AE%E4%BF%9D%E8%AD%B7%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E6%B3%95%E5%BE%8B#2

これで、もし漏れても、俺、ウンコ漏らして臭いけど、パンツから出てないからいいよね?というレベルはなった。はず。

お漏らさないようにキツくする

万が一漏れても大丈夫!と書いたけど、そもそも漏らすなというお話になる。色々調べた結果、以下の対策をほどこした

SQLインジェクション対策

・当初jQuery側でSQL組み立ててPHPに渡してたので、これだと任意のSQLが実行できて漏らし放題なのでやめる。

GETとかPOSTでDBに渡すパラメータを扱ってる場合、ちゃんとエスケープする。

例えばログイン認証するPHPで、GETメソッドでフォームからデータを取得するような場合

$id=$_GET['id']
$pwd=$_GET['pwd']
$sql="select * from ユーザーテーブル where uid='$id' and pwd='$pwd'

とかやってると、login.php?id=admin'&pwd=' OR '1'='1とかパラメータを渡されるとあら不思議

select *from ユーザテーブル where uid='root' and pwd='' or 1=1

で、誰でもログイン出来ちゃう!ので、mysql_real_escape_stringでエスケープしたり、渡されたパラメータが想定した値かどうか(例えば数値かどうか、とか)のチェックをいれたりする。

クロスサイトスクリプティング

・保存するデータタグJavascriptを埋め込まれないように、保存されたデータを出力する場合PHP側でhtmlspecialchars関数使ってエスケープするようにする。

こんな感じでお漏らし対策をした。間違いがあったら教えて欲しい

ちなみに出来上がったサイトはこれ。

http://oreni-makasero.com/

2010-04-22

Redmine 0.9.3をTomcat 6で実行する方法

結構苦労したので健忘録として。。

環境は以下のとおり

JDK, Tomcat, JRubyインストール済み

MySQLインストール
yum install mysql-server
MySQLの起動
/etc/init.d/mysqld start
MySQLの設定

rootパスワードなどを設定する

mysql_secure_installation
Rubyモジュールインストール

RubyGemsモジュールインストールする

jruby -S gem install rails
jruby -S gem install warbler
jruby -S gem install activerecord-jdbc-adapter
jruby -S gem install activerecord-jdbcmysql-adapter
jruby -S gem install jdbc-mysql
MySQLRedmineデータベースを作成
mysql -u root -p
mysql> create database redmine character set utf8;
mysql> grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'redmine';
mysql> exit

(ここでは、パスワードredmineしているが自由に)

RedmineDB設定

(任意の場所にRedmine解凍して、解凍先のディレクトリに移動した後)

cp config/database.yml.example config/database.yml
vi config/database.yml

database.yml

production:
  adapter: jdbcmysql
  database: redmine
  host: localhost
  username: redmine
  password: redmine
  encoding: utf8

#development:
#
#
#test:
#
#

後のwarbleでのエラーを防ぐため、developmentとtestコメントアウト

DBへのデータ投入
jruby -S rake generate_session_store
jruby -S rake db:migrate RAILS_ENV=production
jruby -S rake load_default_data RAILS_ENV=production
起動確認

script/serverで起動し、http://localhost:3000 にアクセスして正常に動作するか確認する

jruby script/server -e production
production.rbの修正

Tomcatで動かしたときにログ出力するための設定をする

vi config/environments/production.rb
config.logger = Logger.new(config.log_path)
config.logger.level = Logger::INFO
warblerの設定

warble.rbを生成

jruby -S warble config

warble.rbを修正

vi config/warble.rb
  config.dirs = %w(app config lib log vendor tmp extra files lang)
  config.gems = ["jdbc-mysql", "activerecord-jdbcmysql-adapter", "activerecord-jdbc-adapter"]
  config.gems["rails"] = "2.3.5"
  config.gems["rack"] = "1.0.1"
  config.webxml.rails.env = "production"

warファイルを作成

jruby -S warble

できたwarファイルTomcatに配置して、Tomcatを起動する

mv redmine-0.9.3.war /usr/local/tomcat/webapps/redmine.war
/usr/local/tomcat/bin/startup.sh

warblerのバグ(?)でwarに入らないファイルコピーして入れる

cp vendor/gems/rubytree-0.5.2/.specification /usr/local/tomcat/webapps/redmine/WEB-INF/vendor/gems/rubytree-0.5.2

http://localhost:8080/redmine/ にアクセスしてインストールできたか確認して完了!

2009-10-09

javascript:void(prompt("Password",Math.random().toString(36).slice(-8)));

2009-03-22

Mac OSX 10.5.6にて。

GnuCash とかいう家計簿ソフトインストールしてみたわけだが、起動しない。

どうしたものか。

[***:~] ***% sudo port install gnucash
Password:
--->  Fetching gnucash
--->  Verifying checksum(s) for gnucash
--->  Extracting gnucash
--->  Applying patches to gnucash
--->  Configuring gnucash
--->  Building gnucash
--->  Staging gnucash into destroot
--->  Installing gnucash @2.2.9_0
--->  Activating gnucash @2.2.9_0
--->  Cleaning gnucash
[***:~] ***% gnucash
gnc.bin-Message: main: binreloc relocation support was disabled at configure time.

Xlib:  extension "RANDR" missing on display "/tmp/launch-6BB0ZT/:0".
The application 'gnucash' lost its connection to the display /tmp/launch-6BB0ZT/:0;
most likely the X server was shut down or you killed/destroyed
the application.

2008-10-26

[3:39] *** えがちゃんが奥野肛門括約筋, oquno, ryo_GRID, ryuzi_kambeを追加しました ***

[3:39] UK - Yuki Akamatsu: エモオフなめんな

[3:39] *** えがちゃんが=ujihisa24を追加しました ***

[3:40] *** satoru.netが、会話のタイトルを"えがえがチャット?"に変更しました ***

[3:41] *** OKが、会話のタイトルを""に変更しました ***

[3:41] OK: みす

[3:41] *** えがちゃんがhayamiz, hogelog, nkztmktを追加しました ***

[3:41] *** Mishoが、会話のタイトルを"<<ここをクリックしてチャットタイトルを設定>>"に変更しました ***

[3:42] *** えがちゃんが、会話のタイトルを"えがえがチャット"に変更しました ***

[3:42] nommy/asuinim/L4RK: えっと、これは何がしたいんです?

[3:42] Misho: 世界の果てだよ

[3:42] satoru.net: えがちゃんが 主催者になりたいのだろうか。。

[3:42] Misho: はじめましてのひとははじめまして!みしょです!!!!

[3:42] えがちゃん: 正解>misho

[3:43] えがちゃん: 今日ここに集まってもらったメンバー

[3:43] satoru.net: はじめましてー>みしょ様

[3:43] えがちゃん: 大事なお知らせがあります

[3:43] UK - Yuki Akamatsu: 結婚すんの?

[3:43] UK - Yuki Akamatsu: おめでとう

[3:43] えがちゃん: えー、発表していいですか?>satoruさん

[3:43] Misho: おめでとう!

[3:43] えがちゃん: うん、ありがとう

[3:43] OK: 江上自己顕示欲旺盛のクソ

[3:43] satoru.net: しらんしおれw

[3:43] えがちゃん: www

[3:43] OK: 偉くなりたいだけ

[3:43] OK: 謙虚さが見えない

[3:43] えがちゃん: エー実は僕、

[3:43] OK: はい

[3:43] えがちゃん: (まずここでのチャットは非公開でお願いしますね)

[3:43] えがちゃん: まず、2つありまして1つは

[3:43] UK - Yuki Akamatsu: 学習したのか

[3:44] OK: はい

[3:44] nommy/asuinim/L4RK: それアレ?上島?

[3:44] えがちゃん: 今までのはてなでの流れにつきましてです

[3:44] OK: 全世界にチャットログを公開します

[3:44] satoru.net: 学習機能ついてたんだー えがちゃんて 感動

[3:44] Misho: わかった!!絶対に公開しない!!!

[3:44] Misho: おまえらも絶対に公開するんじゃないぞ!!!!

[3:44] nommy/asuinim/L4RK: よし、みしょ、公開するなよ!

[3:44] Misho: いいな!!!ぜったいだぞ!!!!!!

[3:44] えがちゃん: なぜ、今までこういったことをはてなでやってきかた

[3:44] nommy/asuinim/L4RK: 絶対にだぞ!

[3:44] Misho: おう!!!ぜったいしない!!!!!

[3:44] えがちゃん: すべてをお話、、、

[3:44] えがちゃん: すればいいですか?

[3:44] えがちゃん: まぁそれはいいか

[3:44] UK - Yuki Akamatsu: いや

[3:44] nommy/asuinim/L4RK: OKもするなよ!公開するなよ!

[3:44] えがちゃん: んで、2つ目が

[3:44] えがちゃん: では、発表します!

[3:44] えがちゃん: えー、、、緊張しますね

[3:44] えがちゃん: では、いきます

[3:45] えがちゃん: 「週に1つサービスを作ろうの会」発足

[3:45] えがちゃん: をここに表明いたします。

[3:45] UK - Yuki Akamatsu: ほい

[3:45] えがちゃん: 皆さんは、メンバーでございます。

[3:45] えがちゃん: 一緒に、気づきあげましょう。

[3:45] えがちゃん: 僕が、会長です。

[3:45] UK - Yuki Akamatsu: 拒否権はあるんですか

[3:45] yuiseki: ^^;

[3:45] えがちゃん: うーん、一旦今日は表明だけなので

[3:45] nommy/asuinim/L4RK: 後のともだち ですね

[3:45] えがちゃん: ない

[3:45] えがちゃん: >拒否権

[3:45] UK - Yuki Akamatsu: ないwwww

[3:45] OK: 映画化決定!!!!!!!

[3:46] えがちゃん: 一応、実は計画があります

[3:46] えがちゃん: もちろん、ばかみたいに今までサイトを作ってきて

[3:46] OK: マルチ商法だ!

[3:46] えがちゃん: 目的もないなんて、バカのやることです

[3:46] OK: 大丈夫、馬鹿は何やっても馬鹿ですから。

[3:46] *** えがちゃんがVoQnを追加しました ***

[3:46] OK: 江上とか江上とか江上とか。

[3:46] UK - Yuki Akamatsu: タイミング

[3:46] えがちゃん: では、何をゴールにするか

[3:46] UK - Yuki Akamatsu: おかしくねw

[3:46] えがちゃん: wwwww

[3:46] *** VoQnが退席しました ***

[3:46] えがちゃん: いや、VoQnさんはここでよぶできでしょうw

[3:46] satoru.net: ちなみにここにあつまってるひとって

[3:47] satoru.net: みんhな webつくる系なひとなの?w

[3:47] OK: プライバシー設定で拒否られていることに

[3:47] OK: 江上は無反応である

[3:47] UK - Yuki Akamatsu: ニートです

[3:47 | 3:47:19を編集しました] OK: わろす

[3:47] satoru.net: おー。ニート( ・∀・)イイ!!

[3:47] えがちゃん: わろす

[3:47] OK: 江上を叩くのが職業

[3:47] えがちゃん: って、別にOKさんはそんなにたたいてないでしょうw

[3:47] OK: 修行

[3:47] えがちゃん: まぁ、一応理念てきなものはここで今後発表していきます

[3:47] OK: 精進します

[3:47] yuiseki: (think)

[3:47] えがちゃん: そうだね

[3:47] えがちゃん: まずは

[3:48] えがちゃん: みんな、メンバー同士仲良くしてもらいたいと言うのが1つと

[3:48] えがちゃん: VoQnさんを誰か読んでもらいたいwwww

[3:48] *** yuisekiがjavascripterを追加しました ***

[3:48] えがちゃん: と言うのが2つ目

[3:48] satoru.net: あー えが叩き家の方ですか。お務め御苦労です!

[3:48] えがちゃん: 3つ目が、自分を大切にしてもらいたい

[3:48] *** yuisekiがtackeを追加しました ***

[3:48] OK: えが叩き券

[3:48] OK: 1枚1000円

[3:48] えがちゃん: 4つ目が今後、僕についてブログでドンドン言及してもらいたい

[3:48] *** UK - Yuki Akamatsuが、会話のタイトルを"ログは非公開だそうですよ。"に変更しました ***

[3:48] javascripter: 参上

[3:48] UK - Yuki Akamatsu: それは

[3:48] えがちゃん: 毎週土曜日

[3:48] UK - Yuki Akamatsu: 批判とかでも

[3:48] OK: やなこった>topic

[3:48] UK - Yuki Akamatsu: いいんですか

[3:49] OK: 江上について言及すると

[3:49] OK: 彼のモチベーションが上がる!

[3:49] えがちゃん: えがちゃんちに集合

[3:49] OK: 逆説的に言えば

[3:49] えがちゃん: ってなんでやねんwwwwww

[3:49] OK: 江上は無敵である

[3:49] えがちゃん: おkだよ

[3:49] OK: えがみけ。

[3:49 | 3:50:04を削除しました] えがちゃん: このメッセージ削除されました

[3:49] javascripter: というか途中から入ったから1つめと2つめ見れん

[3:49] えがちゃん: ぼくのうちにかってにすみついてもらっても.

[3:49] UK - Yuki Akamatsu: javascripterの人だ

[3:49] えがちゃん: かまいません

[3:49] えがちゃん: 食糧 そのた 物資は

[3:49] OK: 矢野さんってネットでいっぱい稼いでるんですよね!おうちっておっきいんですか!

[3:49] UK - Yuki Akamatsu: えがみハウス

[3:49] satoru.net: ちっこいです。

[3:50] nommy/asuinim/L4RK: 削除された発言を見れなかった

[3:50] OK: あー俺黒歴史創造しつつあるなー

[3:50] OK: まあいいや

[3:50] えがちゃん: そうですね

[3:50] えがちゃん: OKさんとかの

[3:50] UK - Yuki Akamatsu: おれあれなんですよ

[3:50] えがちゃん: 今日ブログの言及はなかなかよかったです。

[3:50] UK - Yuki Akamatsu: 話の流れとか理念とかを

[3:50] UK - Yuki Akamatsu: 理解してもらうために

[3:50] えがちゃん: ただもっと突っ込んでもいいかなと言うのが正直な話ですが

[3:51] えがちゃん: ああいいう感じで、言及してもらい

[3:51] UK - Yuki Akamatsu: ログは公開した方がいいとおもうんですよ

[3:51 | 3:51:16を削除しました] えがちゃん: このメッセージ削除されました

[3:51] UK - Yuki Akamatsu: > えがちゃん

[3:51] えがちゃん: 最終ゴールは

[3:51] えがちゃん: 日本征服。

[3:51] えがちゃん: これいきましょう。

[3:51] satoru.net: ちっちゃ

[3:51] えがちゃん: おお!

[3:51] OK: ちっちゃいなー

[3:51] えがちゃん: え?

[3:51] satoru.net: 海外にせまないんっすか?

[3:51] nommy/asuinim/L4RK: 全然

[3:51] nommy/asuinim/L4RK: 見てなかった

[3:51] えがちゃん: なるほど

[3:51] tacke: ログ大公開だそうですよ。

[3:51] えがちゃん: 世界征服

[3:51] nommy/asuinim/L4RK: 消された発言なに?

[3:51] OK: アイスランドをのっとる!

[3:51] えがちゃん: これいきましょう

[3:51] UK - Yuki Akamatsu: わすれた

[3:51] yuiseki: ??くにをつくる

[3:51] satoru.net: とりあえず えがみハウス

[3:52] えがちゃん: 具体的に土曜日に集まって

[3:52] えがちゃん: 世界征服できるかよwwww

[3:52] OK: 江上殴り放題

[3:52] えがちゃん: とお思いですよね?

[3:52] javascripter: 日曜にしろや

[3:52] OK: 2時間無料

[3:52] OK: えがみはうす

[3:52] えがちゃん: それはうざい>殴る

[3:52] えがちゃん: そういうのやめろ>OK

[3:52] satoru.net: えがみはうすって 飲み食いじゆうですか?

[3:52] えがちゃん: あっはい、

[3:52] OK: 冗談です

[3:52] えがちゃん: 基本的に自由です。

[3:52] yuiseki: えがちゃんが養ってくれるの?

[3:52] えがちゃん: ただ、帰って来て

[3:52] えがちゃん: 物なくなってたらちょっと切れます

[3:52] satoru.net: www

[3:52] えがちゃん: ちなみに、この企画は本気です。

[3:53] OK: そうか江上はSか

[3:53] javascripter: はあそうですか、すごいですね

[3:53] OK: 僕は昔は殴られるだけで心地よかった

[3:53] えがちゃん: もうこうなったら、自分と言うコンテンツを最大限に発揮し

[3:53] えがちゃん: 家を貸し出そうと思います。

[3:53] えがちゃん: さー!みなさん!

[3:53] OK: 不動産に進出!

[3:53] えがちゃん: もし興味がありそうな人がいたら

[3:53] えがちゃん: このグループチャットに知り合いを呼んでください

[3:53] nommy/asuinim/L4RK: マルチ

[3:53] えがちゃん: あと、部屋の中の状況は常にカメラで公開

[3:53] えがちゃん: されます

[3:53] えがちゃん: ( ^ω^ )ニコニコ風に

[3:54] えがちゃん: こめんとがつけられるので

[3:54] OK: オナニーとかできないじゃないかそれ!

[3:54 | 3:54:06を削除しました] えがちゃん: このメッセージ削除されました

[3:54] OK: それはよくない!

[3:54] えがちゃん: そのてんだけ ごりょうしょうくださいw

[3:54 | 3:54:17を削除しました] tacke: このメッセージ削除されました

[3:54] satoru.net: ww

[3:54] OK: そうか公開オナニー

[3:54 | 3:54:32を削除しました] tacke: このメッセージ削除されました

[3:54] えがちゃん: いうw

[3:54] UK - Yuki Akamatsu: 友達呼ぶのにログみせたいんですけど

[3:54] えがちゃん: いやだめ

[3:54] UK - Yuki Akamatsu: えー

[3:54] えがちゃん: ここのログは非公開

[3:54] satoru.net: えー ええやろw

[3:54] OK: どうぞどうぞご自由に

[3:55] えがちゃん: ではおkさんでw

[3:55] UK - Yuki Akamatsu: 理念とか説明するのだるい

[3:55] nommy/asuinim/L4RK: 友達を広く呼ぶためにログを一部twitterに張るのはだめですか?

[3:55 | 3:55:22を編集しました] OK: 全部でもどうぞ

[3:55] *** UK - Yuki Akamatsuが、会話のタイトルを"ログ公開ok"に変更しました ***

[3:55] satoru.net: 何でも公開精神でいくほうがよくねw

[3:55] satoru.net: いつから えがちゃんは 保守派になったのw

[3:55] えがちゃん: 公開でw

[3:55 | 3:56:07を削除しました] えがちゃん: このメッセージ削除されました

[3:55] OK: 江上さんはコードを隠してもcrackされるので

[3:55] OK: 仕方がない

[3:55] yuiseki: ほあー

[3:55] えがちゃん: 副理事なのでみなさん言うこと聞いてください

[3:55] OK: 江上民主党

[3:55 | 3:56:02を削除しました] えがちゃん: このメッセージ削除されました

[3:56] OK: 江上「日本をぶっこわす」

[3:56] えがちゃん: 今後satoruさんの言うことを聞いてください

[3:56] OK: 何故ですか

[3:56] *** tackeがsendを追加しました ***

[3:56] yuiseki: 江上のギアスが発動する

[3:56] *** sendが退席しました ***

[3:56] OK: 僕は矢野という男は

[3:56] satoru.net: あ。ぼくはかんけいないですw

[3:56] OK: なんか某大学柔道選手のような人だと

[3:56] OK: おもっている

[3:56] satoru.net: 江上が 勝手にいってるだけです

[3:56] *** nommy/asuinim/L4RKがNANKI Haruoを追加しました ***

[3:56] OK: 顔が

[3:57] *** えがちゃんがcats, poohtarou(ぷーたろー), kamemoto.sayaka, 安江健, VoQn, ymrlを追加しました ***

[3:58] *** VoQnが退席しました ***

[3:58] nommy/asuinim/L4RK: 発言が収まったと思ったら人よんどっただけかw

[3:58] satoru.net: えとー、とりあえず 役割分担として、

えがみは 実際 開発とか ばりばりできるわけでもないので、

実質的な 開発やら サーバ環境 用意したりとか

そのへんは 僕が フォローできればなあとおもってます。

[3:58] OK: 今くしゃみしようとして舌かんだ

[3:58] OK: 痛い

[3:58] OK: 矢野さんに一言。

[3:58] Misho: みしょと聞いて

[3:58] UK - ukstudio - Yuki Akamatsu: ホイミ

[3:58] OK: 江上さんにエサあげてどうするんですか

[3:58] OK: 彼の向上意欲が

[3:59] OK: ますます低下しますよ

[3:59] satoru.net: あー。ぼくは べつに どーこーしたいつもりでもなくて

えがみがやりたいことを やればいー ってくらいです。

[3:59] OK: 可愛い子には旅をさせよ

[3:59] *** えがちゃんが、会話のタイトルを"この計画を「Webサイトを週一で作ろうの会」プロジェクトとして布教してちょ"に変更しました ***

[3:59] 亀: なぜ呼ばれたのか分からない亀

[3:59] OK: 昔の人の言葉です。

[3:59] OK: 矢野さんはダイレクトに助けるのではなく、彼に考えさせる手助けをすべき

[3:59] UK - ukstudio - Yuki Akamatsu: マスコットキャラクターとしてじゃないですかね > 亀さん

[3:59] OK: 彼はどんどん働かなくなります

[3:59] 亀: わーわーさとるさんだーヽ(´ー`)ノ

[3:59] えがちゃん: OKもうわかったから次いこうか

[3:59] nommy/asuinim/L4RK: 分からない亀 に吹いた

[3:59] OK: wwwww

[3:59] えがちゃん: satoruさんのおっしゃるとおり

[3:59] えがちゃん: えとー、とりあえず 役割分担として、

えがみは 実際 開発とか ばりばりできるわけでもないので、

実質的な 開発やら サーバ環境 用意したりとか

そのへんは 僕が フォローできればなあとおもってます。

[3:59] NANKI Haruo: 働かなくなったら、それはそれでいいんじゃないの?

[4:00] えがちゃん: と言う形でいきます

[4:00] UK - ukstudio - Yuki Akamatsu: この会の一番の理由は

[4:00] OK: ここから江上さんがニートになって廃人になるちょうすぴーどの

[4:00] OK: ふぃくしょんが

[4:00] UK - ukstudio - Yuki Akamatsu: えがみを表にたたせて、裏で勝手に働いてくれる人を

[4:00] えがちゃん: まとめると

[4:00] UK - ukstudio - Yuki Akamatsu: さがすってことじゃないの?

[4:00] えがちゃん: まとめますね

[4:00] OK: 展開するとこだったのに

[4:00] NANKI Haruo: 何故か笑うせーるすまんを思い出すな。

[4:00] OK: まとめなくていいです

[4:00] UK - ukstudio - Yuki Akamatsu: 例:おれがつくる->えがみ「つくったよー」

[4:00] OK: UKがまとめた

[4:00] OK: 以上。

[4:00] yuiseki: 実装つかれたー

[4:00] nommy/asuinim/L4RK: えがちゃんの部屋の床が抜けるくらいの人数で押しかけようぜ

[4:00] satoru.net: 1Fだから 床ないね 乙

[4:00] nommy/asuinim/L4RK: 1Fかー・・・

[4:01] NANKI Haruo: 一畳に8人入れるとして、64人いける

[4:01] NANKI Haruo: もっと入れると思うけど。

[4:01] satoru.net: よーし 64にんだー

[4:01] nommy/asuinim/L4RK: 何人乗っても大丈夫

[4:01] えがちゃん: 1、Webサイトを週一で作ろうの会発足

2、えがみハウスで毎週土曜日に集まる

3、えがみハウスではライブカメラ公開とある程度の食事がある

4、このグループチャットメンバーは全員会員

5、えがみが会長

6、いい人居たらこのグループチャットに呼んでこい

[4:01] *** yuisekiがitkzを追加しました ***

[4:01] えがちゃん: 以上。

[4:01] OK: 大丈夫、一階でも

[4:01] OK: 基礎というものがあってだな・・・・

[4:01] *** yuisekiがはまちや2を追加しました ***

[4:01] OK: むしろ矢野家に地下を掘る

[4:01] えがちゃん: OKが今日はいつもよりとばしててうけるw

[4:02] NANKI Haruo: 床が抜けないなら天井を抜け、と先人も申しておる

[4:02] OK: そうだそうだ

[4:02] OK: 天井を抜くんだ!

[4:02] えがちゃん: 7、最終ゴールは世界征服

[4:02] 亀: さとるさんのいえ超散らかってるってきいた(´・ω・`)

[4:02] OK: 今夜の抜きネタは何がいいですか

[4:02] satoru.net: あ、ぼくのうちは きたないので ひとはいれないです>亀さん

[4:02] tacke: 3、えがみハウスではライブカメラ公開とある程度の食事がある

4、このグループチャットメンバーは全員会員

5、えがみが会長

6、いい人居たらこのグループチャットに呼んでこい

7、最終ゴールは世界征服

[4:02] えがちゃん: 8、サポートはsatoruさんが対応

[4:02] OK: えがちゃんが

[4:02] 亀: >Webサイトを週一で作ろう サイトなん?サービスじゃなくてー?

[4:02] OK: 酷いじょうやくを

[4:02] *** javascripterがsendを追加しました ***

[4:03] OK: 矢野さん搾取されてもいいんですか!

[4:03] えがちゃん: サービスだね

[4:03] *** えがちゃんが、会話のタイトルを"この計画を「Webサービスを週一で作ろうの会」プロジェクトとして布教してちょ"に変更しました ***

[4:03] OK: 独裁者を許すな!

[4:03] satoru.net: 楽天ショップで食糧いろいろ えがみはうすに輸出しときます

[4:03] UK - ukstudio - Yuki Akamatsu: それを活動することで

[4:03] UK - ukstudio - Yuki Akamatsu: おれにメリットはあるんですか?

[4:03] satoru.net: 搾取>だいかんげい

[4:03] UK - ukstudio - Yuki Akamatsu: ギブアンドテイクで

[4:03] OK: 共和制こそが求められる!

[4:03] UK - ukstudio - Yuki Akamatsu: いきたいです

[4:03] UK - ukstudio - Yuki Akamatsu: 金くれ

[4:03] OK: さとるさんがもう駄目な感じ

[4:03] NANKI Haruo: 食べ物貰えるんじゃないの

[4:03] OK: 搾取されていいのは女性だけでして

[4:03] OK: 大歓迎なんですが

[4:03] OK: 江上さんがかわいい女の子とかだったら

[4:03] UK - ukstudio - Yuki Akamatsu: おれは現金がほしい

[4:04] satoru.net: ふつうに さいとつくって

[4:04] satoru.net: 現金ほしいひとは

[4:04] えがちゃん: 1、Webサービスを週一で作ろうの会発足

2、えがみハウスで毎週土曜日に集まる

3、えがみハウスではライブカメラ公開とある程度の食事がある

4、このグループチャットメンバーは全員会員

5、えがみが会長

6、いい人居たらこのグループチャットに呼んでこい

7、最終ゴールは世界征服

8、サポートはsatoruさんが対応

[4:04] satoru.net: こうこくいれることになるので

[4:04] tacke: 1、Webサービスを週一で作ろうの会発足

2、えがみハウスで毎週土曜日に集まる

3、えがみハウスではライブカメラ公開とある程度の食事がある

4、このグループチャットメンバーは全員会員

5、えがみが会長

6、いい人居たらこのグループチャットに呼んでこい

7、最終ゴールは世界征服

8、サポートはsatoruさんが対応

[4:04] satoru.net: そこで 各自 現金もうければいいのかなぁ。

[4:04] satoru.net: ただ えがみはうすが ひとふえるだけだと 崩壊しちゃうので

[4:04] 亀: えがちゃんの家ハムスターいるらしいからちょっといきたい

[4:04] satoru.net: 一部は えがみはうす運営に まわればいいのかな?

[4:04] yuiseki: (wasntme)

[4:04] えがちゃん: あーいいですね

[4:04] OK: じゃあ僕は

[4:04] OK: 運営として

[4:04] えがちゃん: おい、、、それはもういないよ、、、>亀

[4:05] OK: 江上ハウストイレ破壊して

[4:05] OK: 浸水させる

[4:05] satoru.net: えがみはうす はむすたー いたっけ?ティッシュが散乱してたくらいしかおぼえてないぞ

[4:05] OK: ギークハウスを超えろ!

[4:05] えがちゃん: 超えれるよ簡単に

[4:05] はまちや2: 管理権ちょうだい

[4:05] OK: あーしこってますねー

[4:05] nommy/asuinim/L4RK: えがみはうすに行くための金がない

[4:05] 亀: えっ( ̄□ ̄;)ショック><

[4:05] nommy/asuinim/L4RK: 1000円しかもってない

[4:05] UK - ukstudio - Yuki Akamatsu: はまちやさんだ

[4:05] OK: それとも風俗嬢とですか

[4:05] satoru.net: えがみはうす ネット環境

[4:05] tacke: えがみはうすってどこですか

[4:05] OK: ここはグループチャットなので

[4:05] satoru.net: しょぼいよな。無線LANをセット& モニタを数台

[4:05] OK: オープンチャットじゃないですね

[4:06] 亀: ごめんねかなしいこと言わせちゃって>えがちゃん

[4:06] satoru.net: 設置して ノーとの持ち込みできるようにせよ

[4:06] OK: それは触れてはいけないこと>はまちや2

[4:06] えがちゃん: いえいえ>亀

[4:06] *** yuisekiが加山雄三を追加しました ***

[4:06] OK: ぶっちゃけVIP炎上みたいにすれば

[4:06] UK - ukstudio - Yuki Akamatsu: だれw

[4:06] *** えがちゃんが田村 健太郎を追加しました ***

[4:06] OK: うん

[4:06] *** yuisekiがvoqnを追加しました ***

[4:06] えがちゃん: お

[4:06] えがちゃん: Voqnだ

[4:07] *** yuisekiがVoQnを追加しました ***

[4:07] *** えがちゃんがnishio_hirokazuを追加しました ***

[4:07] yuiseki: (bow)

[4:07] *** nishio_hirokazuが退席しました ***

[4:07] Misho: えがみはうすって

[4:07] Misho: なに?

[4:07] Misho: 一軒家!?

[4:07] えがちゃん: 俺の家です

[4:07] satoru.net: www

[4:07] yuiseki: :)

[4:07] OK: えがみの精液くさい家なんて嫌だ

[4:07] satoru.net: リアルハウスでしょ。えがちゃんのw

[4:07] えがちゃん: まぁ、にちかいものはあります

[4:07] Misho: どこにあるの!?

[4:07] えがちゃん: 恵比寿ガーデンプレスすぐそば

[4:08] Misho: YEBISU

[4:08] OK: おお、ちょろっといけますね

[4:08] tacke: いいとこじゃん

[4:08] *** UK - ukstudio - Yuki Akamatsuがscolorsを追加しました ***

[4:08 | 4:08:54を削除しました] えがちゃん: このメッセージ削除されました

[4:08] Misho: いいとこすぐる。えびすびーるのめいさんちだ。

[4:08] えがちゃん: シムシティみたいに みんなで どんどんおおきくしていく計画

[4:09] NANKI Haruo: 家賃どれくらいですか

[4:09] *** yuisekiがid:todeskingを追加しました ***

[4:09] えがちゃん: 15万ぐらい?

[4:09] はまちや2: 管理権ちょうだい

[4:09] NANKI Haruo: 東京高ぇ

[4:09] *** yuisekiがgeekhouseを追加しました ***

[4:09] id:todesking: 人間が死んでしまった……

[4:09] yuiseki: (bow)

[4:09] OK: ここで私から

[4:09] tacke: 壊滅だ、、、

[4:09] OK: 提案があります!

[4:09] itkz: 人間を殺そう

[4:09] えがちゃん: 管理権のわたしかたがわからないす><

[4:09] scolors: ゆいせき追加しまくりわろた

[4:09] えがちゃん: 1、「Webサービスを週一で作ろうの会」発足

2、えがみハウスで毎週土曜日に集まる

3、えがみハウスではライブカメラ公開とある程度の食事がある

4、このグループチャットメンバーは全員会員

5、えがみが会長

6、いい人居たらこのグループチャットに呼んでこい

7、最終ゴールは世界征服

8、サポートはsatoruさんが対応

[4:09] tacke: カニバリズム

[4:09] send: とでちんがしゃべった

[4:09] yuiseki: !!!!

[4:09] えがちゃん: 地方で来れない人は、リアルで僕の自宅に寝泊まりOKです。

寝袋は複数用意します。

[4:10] OK: 9、利益は皆で山分け

[4:10] OK: これを追加しましょう

[4:10] えがちゃん: 1、「Webサービスを週一で作ろうの会」発足

2、えがみハウスで毎週土曜日に集まる

3、えがみハウスではライブカメラ公開とある程度の食事がある

4、このグループチャットメンバーは全員会員

5、えがみが会長

6、いい人居たらこのグループチャットに呼んでこい

7、最終ゴールは世界征服

[4:10] OK: 社会主義を目指す

[4:10] id:todesking: えがみ会に入れば情報商材サイト作り放題

[4:10] tacke: えがちゃんはもうけをきにしないので1銭もいただきません

[4:10] えがちゃん: 1、「Webサービスを週一で作ろうの会」発足

2、えがみハウスで毎週土曜日に集まる

3、えがみハウスではライブカメラ公開とある程度の食事がある

4、このグループチャットメンバーは全員会員

5、えがみが会長

6、いい人居たらこのグループチャットに呼んでこい

7、最終ゴールは世界征服

9、利益は皆で山分け

[4:10] OK: よいよい

[4:10] えがちゃん: いやいるよw

[4:10] OK: そして反乱分子として

[4:10] えがちゃん: でも、副業はできないので

[4:10] yuiseki: 新手のネットワークビジネスですか

[4:10] えがちゃん: そこは要相談

[4:10] OK: えがみは粛清されるのであった

[4:11] えがちゃん: サーバは専用サーバを1台用意するのでそこをみんなで共有。

[4:11] OK: えがみさん、もうウェブサービス

[4:11] えがちゃん: 1、「Webサービスを週一で作ろうの会」発足

2、えがみハウスで毎週土曜日に集まる

3、えがみハウスではライブカメラ公開とある程度の食事がある

4、このグループチャットメンバーは全員会員

5、えがみが会長

6、いい人居たらこのグループチャットに呼んでこい

7、最終ゴールは世界征服

9、利益は皆で山分け

10、サーバは専用サーバを1台用意するのでそこをみんなで共有。

[4:11] OK: これからの時代はやりませんよ

[4:11] えがちゃん: うっせ>OK

[4:11] OK: これからの時代は島です

[4:11] OK: 島を買いましょう

[4:11] はまちや2: 管理権ちょうだい

[4:11] NANKI Haruo: そういえば昔、

[4:11] OK: だからオープンチャットじゃないから

[4:11] OK: 管理権とかない

[4:11] えがちゃん: いや、本気で譲渡の方法がわからないです

[4:11] えがちゃん: はまちちゃんさんも

[4:11] UK - ukstudio - Yuki Akamatsu: グループって管理権ないん?

[4:11] えがちゃん: 入ります?

[4:12] OK: >[4:11:30] えがちゃんの発言: うっせ>OK

ショックでした

[4:12] UK - ukstudio - Yuki Akamatsu: ここのメンバーは強制じゃないんかい

[4:12] はまちや2: hairuhariru

[4:12] NANKI Haruo: やっぱり、情報商材とか、怪しげなビジネスモデルに興味津々な後輩がいて、

[4:12] satoru.net: いそがしくて えがみはうすなんて これないとおもわれww>はまちやさん

[4:12] えがちゃん: よかったー

[4:12] はまちや2: いくにきまってんじゃん

[4:12] satoru.net: まじっすか!!!

[4:12] えがちゃん: おぉありがとうございます。

[4:12] NANKI Haruo: 好き放題やらせてたな。

[4:12] sys: Available commands:

/me [text]

/topic [text]

/add [skypename]

/history

/find [text]

/fa or /

/alertson [text]

/alertsoff

/call [skypename] ..

/leave

/goadmin

/get creator

/get role

/whois [skypename]

/setrole [skypename] MASTER|HELPER|USER|LISTENER

/kick [skypename]

/kickban [skypename]

/get guidelines

/get xguidelines

/set guidelines [text]

/get options

/set options [[+|-]flag] ..

/setpassword [password] [password hint]

/clearpassword

/get password_hint

/get banlist

/get allowlist

/set banlist [[+|-]mask] ..

/set allowlist [[+|-]mask] ..

/help

For more help please see http://www.skype.com/go/help.chathelp

[4:12] NANKI Haruo: 専用のサーバも買ってさ。

[4:12] えがちゃん: XSSの脆弱性部をお願いしたいものですね

[4:12] send: はまちちゃんが行くなら俺も見に行くか

[4:13] UK - ukstudio - Yuki Akamatsu: おれもおれも

[4:13] OK: PHPでXSSの脆弱性出すヤツは

[4:13] javascripter: 俺もいこう

[4:13] えがちゃん: おk

[4:13] OK: ただのコーダーの知識不足で

[4:13] scolors: 見るだけ

[4:13] OK: PHPは適切に標準関数使えば

[4:13] えがちゃん: ちなみに、何度も言うけど

[4:13] OK: ワンステップでXSS可能性を排除できる

[4:13] えがちゃん: ここのチャットは公開のしかたよろしくね!

[4:13] UK - ukstudio - Yuki Akamatsu: htmlspe(ryだけじゃダメな時もあった気がするけど。

[4:13] えがちゃん: 決して、ブログとかでコピペしちゃだめだよ?w

[4:13] UK - ukstudio - Yuki Akamatsu: ん?

[4:13] tacke: ん?

[4:13] UK - ukstudio - Yuki Akamatsu: 公開okだろ?

[4:13] えがちゃん: XSS云々そんな細かいことできにしてるやつらは、ちょっと 表に出ろ

[4:13] OK: なんかそれに対する全対策的関数とかなかったっけ>UK

[4:14] scolors: 公開のしかたよろしくねって

[4:14] えがちゃん: (っていうふり>XSS)

[4:14] UK - ukstudio - Yuki Akamatsu: あったっけ

[4:14] tacke: 公開の仕方がそもそもわからんのですが

[4:14] NANKI Haruo: 表って、家の外にでればいいのか?

[4:14] UK - ukstudio - Yuki Akamatsu: PHPわかんないや

[4:14] えがちゃん: XSS云々そんな細かいことできにしてるやつらは、ちょっと 表に出ろ

[4:14] javascripter: htmlspe(ryが駄目なのってUTF-7の時とか?

[4:14] OK: えがみみてると

[4:14] OK: いわいらするなー

[4:14] えがちゃん: 俺らの狙ってるのはそんなちっけーことじゃねえ

[4:14] UK - ukstudio - Yuki Akamatsu: 文字コードとか

[4:14] OK: UTF-7 Injection

[4:14] id:todesking: PHP、何でデフォルトHTMLエスケープされるようになってないんだろう

[4:14] *** yuisekiがsatromiを追加しました ***

[4:14] *** tackeがdankogaiを追加しました ***

[4:14] send: IE で ` もダメじゃなかったっけ

[4:14] えがちゃん: だんこがい!?ww

[4:14] satoru.net: とりあえず いるもの:

 ボードモニタ数台、無線LAN、専用サーバ

[4:15] OK: だんこがいわろすwwwwwwwwwwwwwwwwww

[4:15] *** dankogaiが退席しました ***

[4:15] OK: ぷらいばしーせっていwwwwwwwwwww

[4:15] UK - ukstudio - Yuki Akamatsu: w

[4:15] NANKI Haruo: さすが

[4:15] はまちや2: うん。その方が良かったね。デフォルトエスケープ

[4:15] tacke: ・・・チッ

[4:15] yuiseki: !!

[4:15] OK: デフォルトエスケープ

[4:15] OK: 使いづらくないか

[4:15] satoru.net: ドメインって共通にしたほーがいいのだろうか。その辺はXSSのとき

色々問題ありそげだから じゆうにしとく?

[4:15] NANKI Haruo: XSS垂れ流しよりマシ

[4:15] UK - ukstudio - Yuki Akamatsu: PHPに関していえば

[4:15] はまちや2: 世の中の脆弱性がすごくへるよ

[4:15] UK - ukstudio - Yuki Akamatsu: デフォルの方がいいかなーとはおもう

[4:15] scolors: ていうか PHP XSS で検索するだけでも大量に参考Permalink | 記事への反応(1) | 05:08

2008-10-18

real street angels から mechanize を使って動画を取ってきてEmacsで見てみるよ

せっかく書いたから匿名でのせてみるよ

使い方は

  • 動画を取ってきたいよ
    • config.yamlユーザとかを設定するよ
    • ids.txt に取ってきたいIDを書くよ
    • sangels.bat を実行するよ
  • Emacs動画を見たいよ
    • sangels.el を load するよ
    • M-x sangels だよ

必要なものを gem で取ってくるにはこうすればいいよ

  • gem install -r log4r
  • gem install -r -v 0.6 hpricot
  • gem install -r mechanize

長すぎてelispが消えたから続きがあるよ

sangels.bat - 起動用バッチファイル

@echo off
setlocal
set WD=%~dp0
cd /d %WD%

ruby get_movies.rb
ruby get_images.rb
ruby create_m3u.rb

ruby

config.yaml - 設定ファイル
user: ユーザID
password: パスワード
ids_file: ids.txt
done_file: ids_done.txt
movies_dir: movies

log4r_config:
  pre_config:
    global: INFO
  loggers:
    - name: app
      type: Log4r::Logger
      level: INFO
      outputters:
        - STDOUT
        - FILE
  outputters:
    - name: STDOUT
      type: Log4r::StdoutOutputter
      formatter:
        type: Log4r::PatternFormatter
        pattern: "%d [%l] %C - %M"
        date_pattern: "%H:%M:%S"
    - name: FILE
      type: Log4r::FileOutputter 
      filename: "#{LOGDIR}/sangels.log"
      formatter:
        type: Log4r::PatternFormatter
        pattern: "%d [%l] %C - %M"
        date_pattern: "%Y-%m-%d %H:%M:%S"
get_movies.rb
require 'fileutils'
require 'logger'
require 'mechanize'

BASEDIR = File.dirname($0)
require "#{BASEDIR}/util"
require "#{BASEDIR}/sangels"

$config = load_config(BASEDIR)
prepare_logger(BASEDIR)
$log = new_logger("get_movies")
WWW::Mechanize.log = new_logger("mechanize")
WGet.log = $log

class IDFile
  def initialize(file)
    @file = file
    unless File.exist?(@file)
      Fileutils.touch(@file)
    end
  end

  def ids(contains_comment = nil)
    File.open(@file) {|io|
      io.to_a.map {|x|
        x.chomp
      }.select {|x|
        if x.empty?
          nil
        elsif contains_comment
          true
        else
          not /^\s*\#/ =~ x
        end
      }
    }
  end

  def add(id)
    ids = ids(true)
    unless ids.any? {|x| x == id}
      write(ids + [id])
    end
  end

  def delete(id)
    ids = ids(true)
    if ids.any? {|x| x == id}
      write(ids - [id])
    end
  end

  def write(ids)
    File.open(@file, "w") {|io|
      ids.each {|x| io.puts x}
    }
  end
end


$log.info("BEGIN #{$0} ================")
exit_code = 0
begin
  ids_file = IDFile.new($config.ids_file)
  done_file = IDFile.new($config.done_file)
  movies_dir = $config.movies_dir
  wget = WGet.new

  sangels = SAngels.new
  sangels.login($config.user, $config.password)
  ids_file.ids.each {|id|
    begin
      movies = sangels.movies(id)
    rescue SAngels::Movies::InvalidMoviesError
      $log.warn("invalid movie id: #{id}")
      next
    end
    dir = File.expand_path(id, movies_dir)
    movies.each {|link|
      wget.retrieve(link.href, dir)
    }
    expected = movies.movie_links.map{|x| File.basename(x.href)}
    actual = Dir.glob("#{dir}/*").map {|x| File.basename(x)}
    if (expected - actual).empty?
      done_file.add(id)
      ids_file.delete(id)
    end
  }
rescue => e
  $log.error(e)
  exit_code = 1
end

$log.info("END #{$0} (#{exit_code}) ================")
exit exit_code
get_images.rb
require 'fileutils'
require 'logger'
require 'mechanize'
require 'ostruct'

BASEDIR = File.dirname($0)
require "#{BASEDIR}/util"
require "#{BASEDIR}/sangels"

$config = load_config(BASEDIR)
prepare_logger(BASEDIR)
$log = new_logger("get_images")
WWW::Mechanize.log = new_logger("mechanize")
WGet.log = $log

$log.info("BEGIN #{$0} ================")
exit_code = 0
begin
  movies_dir = $config.movies_dir
  sangels = SAngels.new
  sangels.login($config.user, $config.password)
  thumbnails = sangels.thumbnails

  Dir.glob("#{movies_dir}/*").each {|dir|
    next unless File.directory? dir
    id = File.basename(dir)

    url = thumbnails.url(id)
    unless url
      $log.warn("#{id} is not found")
      next
    end
    path = File.expand_path("00_thumbnail#{File.extname(url)}", dir)
    next if File.exist? path

    $log.info("retrieving #{url}")
    thumbnail = thumbnails.get_file(id)
    File.open(path, "wb") {|io| io.write(thumbnail)}
  }
rescue => e
  $log.error(e)
  exit_code = 1
end

$log.info("END #{$0} (#{exit_code}) ================")
exit exit_code
create_m3u.rb
BASEDIR = File.dirname($0)
require "#{BASEDIR}/util"

$config = load_config(BASEDIR)
movies_dir = $config.movies_dir
Dir.glob("#{movies_dir}/*") {|dir|
  next unless File.directory? dir
  name = File.basename(dir)
  files = Dir.glob("#{dir}/*.wmv").sort

  File.open("#{movies_dir}/#{name}.m3u", "w") {|io|
    files.each {|file|
      io.puts "#{name}/#{File.basename(file)}"
    }
  }

  File.open("#{dir}/00_movies.m3u", "w") {|io|
    files.each {|file|
      io.puts "#{File.basename(file)}"
    }
  }
}
sangels.rb
require 'mechanize'
require 'hpricot'

BASEDIR = File.dirname($0)
require "#{BASEDIR}/util"

class SAngels
  HOST = "real2.s-angels.com"
  LOGIN_URL = "http://#{HOST}/member/"
  INFO_URL = "http://#{HOST}/teigaku/item.php"
  THUMBNAILS_URL = "http://#{HOST}/teigaku/"
  THUMBNAIL_URL = "http://#{HOST}/images/default/thumb/"

  def initialize()
    @agent = WWW::Mechanize.new
  end

  def login(user, password)
    login_form = @agent.get(LOGIN_URL).forms.find {|form|
      form.fields.any? {|field| field.name == "frmLoginid"}
    }
    login_form.frmLoginid = user
    login_form.frmPw = password
    @agent.submit(login_form)
  end

  def movies(id, no_validate = nil)
    Movies.new(@agent, id, !no_validate)
  end

  def thumbnails
    Thumbnails.new(@agent)
  end

  class Thumbnails
    def initialize(agent)
      @agent = agent
      doc = Hpricot(@agent.get_file(THUMBNAILS_URL))
      elems = doc.search("div[@class=realthum]/a")
      @links = Hash(
        elems.map {|elem|
          href = elem["href"]
          id = $1 if /ID=(.+)/ =~ href
          url = elem.search("img")[0]["src"]
          [id, url]
        })
    end

    def get_file(id)
      @agent.get_file(url(id))
    end

    def url(id)
      @links[id]
    end

    def exist?(id)
      url(id)
    end
  end

  class Movies
    class InvalidMoviesError < StandardError
    end

    def initialize(agent, id, no_validate)
      @agent = agent
      @id = id
      if !no_validate &amp;&amp; !valid?
        raise InvalidMoviesError
      end
    end

    def info_page_url
      "#{INFO_URL}?ID=#{@id}"
    end

    def info_page
      @agent.get(info_page_url)
    end

    def movies_page
      @agent.click(info_page.links.find {|link| /P=10/ =~ link.href})
    end

    def movie_links
      movies_page.links.select {|link|
        /wmv$/ =~ link.href
      }.sort {|a, b|
        File.basename(a.href) <=> File.basename(b.href)
      }
    end

    def valid?
      info_page.uri.to_s == info_page_url
    end

    def each(&amp;block)
      orig_links = movie_links
      orig_links.each {|orig_link|
        link = movie_links.find {|l| File.basename(l.href) == File.basename(orig_link.href)}
        block.call(link)
      }
    end
  end
end
util.rb
require 'log4r'
require 'log4r/yamlconfigurator'
require 'singleton'
require 'fileutils'
require 'ostruct'

def Hash(a)
  Hash[*a.flatten]
end

def load_config(basedir)
  OpenStruct.new(File.open("#{basedir}/config.yaml") {|io| YAML.load(io)})
end

def new_logger(name)
  Log4r::Logger.new("app::#{name}")
end

def prepare_logger(basedir, logdir = nil)
  logdir ||= basedir
  Log4r::YamlConfigurator["LOGDIR"] = logdir
  Log4r::YamlConfigurator.load_yaml_file("#{basedir}/config.yaml")
end

class NullObject
  include Singleton
  def method_missing(message, *arg)
    NullObject.singleton
  end
end

class WGet
  class << self
    attr_accessor :log
    def initialize
      super
      @log = NullObject.singleton
    end
  end
  
  def log
    self.class.log
  end

  def retrieve(url, dir)
    FileUtils.mkdir_p(dir)
    file = File.expand_path(File.basename(url), dir)
    if File.exist?(file)
      log.info("already retrieved #{url}")
      return true
    end

    tmp = "#{file}.part"
    log.info("retrieving #{url}")
    ret = system("wget", "-c", "-O", tmp, url)
    if ret
      log.info("retrieving succeeded #{url}")
      File.rename(tmp, file)
    else
      if $? == 0x020000 # Ctrl-C
        exit($?)
      else
        log.error("retrieving failure #{url} (#{$?})")
      end
    end
    return ret
  end
end

2008-09-03

Google Password View

Google Chromeってパスワード丸見えじゃね? | IDEA*IDEA

http://b.hatena.ne.jp/entry/http://www.ideaxidea.com/archives/2008/09/google_chrome_1.html

http://b.hatena.ne.jp/www6/20080903#bookmark-9873747

現代社会に完全なプライバシーなどは存在しない」by Google

考えられる新サービス

いつでもどこでも忘れたパスワードを思い出せる、呼び出せるサービス

今ある「秘密の質問」のグーグル版。

「昨日見たサイトは?検索ワードは?」→適当にいくつか答える→ユニークユーザにぶち当たり次第そのユーザパスワードを見ることができる。

すげー!便利!サイコーグーグルは紙!

穴については考えない。

2008-07-23

OpenSSH の Fingerprint を AA にする新機能を試してみた

OpenSSH に "Fingerprint ASCII Visualisation" という機能がついたらしい

http://www.st.ryukoku.ac.jp/~kjm/security/memo/2008/07.html#20080722_OpenSSH

多分。サーバの公開鍵の Fingerprint をアスキーアート化して、そのビジュアルを覚えてサーバなりすましを防ぎましょう!という技術だと思います。但しexperimental。

とりあえず手元で make してみる

$ tar -zxvf openssh-5.1p1.tar.gz
$ cd openssh-5.1p1
$ ./configure
$ make

Macでも問題なくmakeできた。

VisualHostKey オプションデフォルトオフなのだけど、設定変えるのが面倒なので ssh に -o "VisualHostKey yes" オプションをつけて起動してみる。接続先は普段使ってるホストで。

$ ./ssh -o "VisualHostKey yes" ***.###.%%%

結果、こんな風に表示された。

Host key fingerprint is 
   _,,....,,_  _人人人人人人人人人人人人人人人_
-''"::::::::::`''>93:e6:d0:6b:75:6d:22:be:d8:7f:11:ad:50:dc:16:6f<
ヽ::::::::::::::::::::: ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
 |::::::;ノ´ ̄\:::::::::::\_,. -‐ァ     __   _____   ______
 |::::ノ   ヽ、ヽr-r'"´  (.__    ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、
_,.!イ_  _,.ヘーァ'二ハ二ヽ、へ,_7   'r ´          ヽ、ン、
::::::rー''7コ-‐'"´    ;  ', `ヽ/`7 ,'==─-      -─==', i
r-'ァ'"´/  /! ハ  ハ  !  iヾ_ノ i イ iゝ、イ人レ/_ルヽイ i |
!イ´ ,' | /__,.!/ V 、!__ハ  ,' ,ゝ レリイi (ヒ_]     ヒ_ン ).| .|、i .||
`!  !/レi' (ヒ_]     ヒ_ン レ'i ノ   !Y!""  ,___,   "" 「 !ノ i |
,'  ノ   !'"    ,___,  "' i .レ'    L.',.   ヽ _ン    L」 ノ| .|
 (  ,ハ    ヽ _ン   人!      | ||ヽ、       ,イ| ||イ| /
,.ヘ,)、  )>,、 _____, ,.イ  ハ    レ ル` ー--─ ´ルレ レ´

Password:

確かにFingerprintがAAで出てきた。これは覚えやすい。

別のホストにも接続...

$ ./ssh -o "VisualHostKey yes" ***.###.%%%

結果

Host key fingerprint is ff:fb:f0:43:c4:85:9f:70:16:7d:d8:f1:7d:dc:79:53
      ,,,,,,pxxvxxg,,,,_
   ,,df(^"゛ g、    ^゜゜lq
  〈!   ,,dl゜゛   ./==x]t,,_
   ]l.__,,g[,,,,,,,,,,,,,,p4"   .l[^k
   ][「,,pr=t、`、  ____ .l[ ]
  g" ][_  ]!  ./「゜^゜9,,「n,,]
 4゜ .。、.\イ   ゜lk ,,g[  .l]
 ]l. 〈^゜ltn4,,,,_        ]
 ヨ。. ゜ll._   ゜"9n......./ff  ]
  ヨ、.\q,,,,____   ,,gf゛ gl゜
   ^9nnxxxxx゜゜゜゜゜゜゜゜゜゜xvtf"゛

Password:

なんかこわい!

$ ./ssh -o "VisualHostKey yes" ***.###.%%%

結果

Host key fingerprint is 36:fc:e6:85:b7:f5:22:7e:45:f4:d8:5d:5d:f4:83:86
+--[ RSA 1024]----+
|                 |
|.. .o  .         |
|...o.            |
|    . o . .      |
|   + E + * +     |
|  o +   S =      |
| . . o   o .     |
|  ... o * o      |
|     . .         |
+-----------------+

Password:

ネットハックかよ!





ちなみに最後のだけホント。

2008-07-11

http://anond.hatelabo.jp/20080711080748

買えたお( ^ω^)

でも、手続きで30分かかった…orz

iPhone、さわってびっくりしたファーストインプレ

MySoftbankで変更するんだけど、現在iPhoneからしか接続できない。

あの長ったらしいIDPasswordをいきなりタッチパネルから入力させられる初心者涙目w

Password携帯などで入力するとき、正しく入力できているか、運に頼るしかないんだけど、このiPhoneSafari入力直後は一番最後の文字だけ「●」で消えてない!だから入力していて目で確認できるから安心!すげー。この機能はいいね。

機械的に割り振られたアカウントは14文字とか恐ろしい長さのアドレスだったけど、発売当日の今日は3文字のアドレスでもゲットできた。ラッキー

マナーモードでも消えない!日本仕様?とりあえず、ガラパゴス呪縛はこんなところにも。

すげぇ、普通に使える。

やっぱりどこでもgmail最高!

gmailのContactsを指定したら、ネットワーク越しに取ってきやがった。びっくりしてちょっとちびった。

もうgmailの連絡先ですべて管理してしまおうかなー。移行する手間考えたら…。

ウンコIEしか対応していないって、どういう事ー。

早くFirefoxにも対応しなさいよー。

Windows版だけかな?

30日でサーバから消えるから、大事なメールは自分でローカルアドレス転送しるって注意書きにあった。

ちなみにまだ自動転送の項目を見つけられていない。手動なんて死にそうorz

こんなところかな。

眠いのでまた後で追加します。

2008-04-06

http://anond.hatelabo.jp/20080406134447

増田だよ!

外部ログインで入られるとメールアドレスとかがないのが前提になってしまうのでいろいろ機能に制限をいれなきゃいけなかったり、できることを縛る必要がある。

ここでは「OpenIDログインすること」というアクション意味を考えないといけないよね。

スターのような一瞬の感情のときめきを表現する「だけ」のサービスなら現状の仕様でも問題ないということなんだろうね。

OpenIDプロバイダサービスRP)の属性情報の交換、については新規スタートアップの登録時のフォームの自動化で使えるよね、という話が例にあがるように

増田の言うとおりはてなダイアリーなんかの既存エンドユーザに強く紐づくサービスOpenID認証で認可する、

ていうのは現実的ではないということを示唆しているよねー。実装が辛くなるのに、それに対するメリットてあるの?ていう。

メリットデメリットでいうとサービス側もそうだけど何より、

ぼくらエンドユーザOpenID認証がどれだけの「おもてなし」を享受させてくれるのがよくわからない!のがOpenIDの最大のうさんくささだと思いますー。

OpenIDプロバイダさんは、まぁメリットあるよね。自分のIDを外部でも使ってくれるいいチャンスだもんねー。。そりゃプロバイダやります!って手あげるさYahoo!mixiも。

サービス側は?新規会員登録の敷居が下がる?まぁそれはあるかもね。

気軽なOpenID認証を通じて「お試し」ライトな登録として利用させよう、という流れもあるみたい。

でも結局本気サービス側をやるにはユーザ属性情報は必要だしねー。サービスやる人は結局商売にしたいんだから。

まぁOpenSocialとかgraphとかの技術と連動すれば面白くなれる気はするけどー。

で、エンドユーザ(僕ら)は?

管理するID/PASSWORDが一つになるからいい?

ライトな登録ができるようになるからいい?

利用者側としては、サービスごとにログイン情報を使い分ける手間を厭わなければ、OpenID があろうとなかろうとどうでもよいと言えます。

architectures.jpOpenIDセキュリティ(2) http://www.architectures.jp/archives/16

現状これが本質だとおもうけどなー。

2008-04-01

TeXからTwitterに投稿できるらしいね。

\twitterpass{username}{password}
  • あとは文書内へ以下のように書く
\twittersend{yourstatus}{TeX}{http://ww.ctan.org}

{TeX}{http://ww.ctan.org}の部分は何でもいいらしい。

2008-03-02

PTA

javascript:i='[MEMBER_ID]';p='[PASSWORD]';f=document.createElement('form');g=document.createElement('input');h=document.createElement('input');g.setAttribute('name','id');g.setAttribute('value',i);g.setAttribute('type','hidden');h.setAttribute('name','pass');h.setAttribute('value',p);h.setAttribute('type','hidden');f.method="post";f.action="https://secure.amuse.co.jp/perfume/_perfume_login/index.php";f.appendChild(g);f.appendChild(h);document.body.appendChild(f);f.submit();

2008-02-01

ID/Password以外の認証方法でも考えるか

百回じゃんけんをして、その勝率で個人特定するとか。

「むむ、この弱さ!?○○氏に違いない。」とか。

はてなの構造的脆弱性とか

http://anond.hatelabo.jp/20080130215148

ほんとほんと。

はてなにだってすごい脆弱性がある。

最近更新されたダイアリー一覧とかいうのがある。

無限過去をさかのぼって一覧をみることができる。

これで全ダイアリーユーザリストを作成できる。

さらに、各ユーザの各サービスページを参照することで、

そのユーザが最後にはてなを利用した時期がおおむね把握できる。

はてなidpasswordが同じアカウントを作成可能なので、取得したリストidpasswordとしてログインすることで数%のアカウントログイン可能になる。これはjoeアカウントといってクラッキングの基本中の基本だ。これははてなシステム設計がいかに適当かという部分で、

・登録したアカウント名をユーザ名として表示してしまう

アカウント名と同じパスワードを登録可能

という、最低な仕様になっている。

はてなに登録する際、アカウント名を普段他のサービスでも利用しているものにして、アカウント作成後に突如アカウント名がユーザ名として表示されたことに驚愕したユーザもいるのではないかと思う。

そうして取得したjoeアカウントかつおそらく放置されているであろうものは利用し放題である。

これに気づいたのはもう数年前だけど、そのときにはてなメールしたりしたが完全放置である。

はてなアメリカに進出した。

アメリカ工業デザインでは「フールプルーフ」というものが重視される。

「fool proof」のとおり、バカでも使える、バカでも甚大な事故を起こさないための工夫である。

アメリカというのは一握りの天才が、大多数のバカでも運用できるシステムを構築することで工業を支えてきた。

日本も基本的にはそうだが、スタンスがぜんぜん違う。

日本の場合「これに触ると危なくて死んじゃうから触らないでね!」を徹底する。

アメリカは「これに触りまくっても死なないようにしよう」とする。この差は大きい。

はてなは「危ないパスワードは設定しないでね」というスタンスをとった。

世の中の常識は「そんなパスワードは設定できません」だ。

はてな初心者じゃないし、どうでもいいデータを扱ってるわけでもないんだからそのくらいなんとかしろ。

多分情報自体はもういろんなクラッカーに何度も盗まれてるはずだ。騒ぎになってないだけで。

騒ぎにならないとわからないのか?

希望を胸にアメリカに行ってる場合か? きっとシリコンバレーヤンキーにはせせら笑われていると思うよ。

2007-11-29

PHPMySQLのものがたり

// せつぞく

require_once("DB.php");

$db = DB::connect("mysql://$username:$password@$host/$database");

// くえりー(とりあえず,hogeが300以下で一番大きいやつ

$result = $db->query("SELECT MAX(hoge) FROM Table WHERE hoge<=300");

ここまで同じ

$max =& $result->fetchRow(DB_FETCHMODE_OBJECT);

$masuda = $max->MAX(hoge);

return $masuda;

オブジェクトだと,カラム名"MAX(hoge)"入れるとエラーが…

$max =& $result->fetchRow(DB_FETCHMODE_ORDERED);

$masuda = $max[0];

return $masuda;

みたいに配列にすると引ける…

カラム名に()があるのが駄目な気がするんだけど、カラム名に()が含まれていると

オブジェクトで受け取れなくなったりするの?

2007-04-20

[]RubyRuby on Rails

Ruby RDoc Documentation

rubyとは - はてなダイアリー Rubyとは - はてなダイアリー

はてなブックマーク - はてな - Rubyとは

「ruby」を含む日記 - はてなダイアリー

Ruby

「Ruby」に関する画像、動画、ブログ記事のタグ検索結果

Google ブログ検索

買売システム開発記録とか何とか

Rubyで投資システムを作る日記

spacecadetの日記

RubyForge: One-Click Ruby Installer: Project Info

RDE(Ruby Development Environment) - Ruby??J??????????

#!/usr/bin/ruby -Ks

# print "Content-Type: text/html;charset=UTF-8\n\n"

p "表示"


Rails Rails Framework Documentation

http://127.0.0.1/mysql/

http://127.0.0.1:3000/ http://127.0.0.1:3000/recipe/list

http://127.0.0.1:3001/ http://127.0.0.1:3001/recipe/list

http://127.0.0.1:3001/account/signup http://127.0.0.1:3001/test

http://127.0.0.1:3001/item

Hot Chips (delete) Snacks 2004-11-11

Ice Water (delete) Beverages 2004-11-11

Killer Mushrooms (delete) Snacks 2005-09-13

満足せる豚。眠たげなポチ。:Rolling with Ruby on Rails - Japanese Translation - p1

満足せる豚。眠たげなポチ。:Rolling on Ruby on Rails - Japanese Translation - p5

BookmarkOnInstantRails

ITmedia エンタープライズ:第1回 Instant Railsで始めるWindows環境のRails (1/2)

developerWorks Japan

developerWorks Japan

DROP TABLE IF EXISTS `items`;

CREATE TABLE items (

id int(11) NOT NULL auto_increment,

login varchar(80) default NULL,

password varchar(40) default NULL,

PRIMARY KEY (id)

);

えぇてるのぉと:Railsでログイン認証 - livedoor Blog(ブログ)

8 app/views/test/index.rhtmlの編集

<h1>Test#index</h1>

Welcom <%= @session['user'].login %>!

Login Generator (1) - Nowhere Near

config/environment.rb に以下の行を追加する。

module LoginEngine

config :salt, "your-salt-here"

end

Engines.start :login

http://techno.hippy.jp/rorwiki/?Wiki%A4%F2%BA%EE%A4%C3%A4%C6%A4%DF%A4%EB%2F%A5%E6%A1%BC%A5%B6%A1%BC%A4%F2%C7%A7%BE%DA%A4%B9%A4%EB

パパブログ: RoR : login_generator : login中のユーザ情報の取得

@session['user'].id

@session['user'].login

@session['user'].password

で、idやloginが取得できる。

ちなみにidActiveRecordおなじみのidで、

loginがログイン名、passwordパスワードになる。


MySQL-Front download

環境変数

;C:\nonidata\InstantRails\ruby\bin;

cd C:\nonidata\InstantRails\ruby\bin

C:\nonidata\InstantRails\ruby\bin>gem install login_generator

Successfully installed login_generator-1.2.2

C:\nonidata\InstantRails>cd C:\nonidata\InstantRails\rails_apps\cookbook

C:\nonidata\InstantRails\rails_apps\cookbook>ruby script/generate login Account

create lib/login_system.rb

C:\nonidata\InstantRails\rails_apps>cd C:\nonidata\InstantRails\rails_apps\cookbook

C:\nonidata\InstantRails\rails_apps\cookbook>ruby script/generate controller test

exists app/controllers/

[Ruby] Rails(ActiveRecord)の多対多関連 - yuum3のお仕事日記

has_one

has_many

belongs_to

has_and_belongs_to_many

habtm と has_many :through (ActiveRecord)

ヽ( ・∀・)ノくまくまー(2006-01-20)

ActiveRecord の歩き方 - Association 編(1) - Rails で行こう! - Ruby on Rails を学ぶ has_many :comments

developerWorks Japan  has_one :address

Rubyist Magazine - RubyOnRails を使ってみる 【第 3 回】 ActiveRecord

create メソッドを使うこともできます。create は new したあと save (DB に格納) します。


Rubyist Magazine - RubyOnRails を使ってみる 【第 4 回】 ActionPack

find(:all, :conditions => ["user_name = ?", user_name])

find_all(["user_name = ?", user_name])

find_all_by_user_name(user_name)


Part2 Rubyに学ぶ「Ruby on Railsの正体」:ITpro

book = Product.find_or_create_by_name_and_price('book', 2079)

リスト7●productsテーブルからnameが'book',priceが2079であるようなProductオブジェクトを読み取り,存在しなかった場合はデータベースレコードを新規作成する処理


RoR Wiki 翻訳 Wiki - HowToUseLegacySchemas

恣意的で複雑なクエリや、主キーを持たないテーブルにはfind_by_sqlを使う

テーブルが論理的な主キーを持たないなら、

find_by_sqlを使えば主キーを全く指定しない曖昧で複雑なクエリを実行も実行できる。

Post.find_by_sql ["SELECT * FROM posts WHERE author = ? AND created > ?", author_id, start_date]


エディタ utf8

文字化け

ヽ( ・∀・)ノくまくまー(2006-10-11)

チュートリアルを動かしてみる - 肩書「シニアコンサルタント」のつぶやき

Railsでソーシャルブックマークを作ってみようか(第1回) - 坊やがゆく

ようこそ<%= @session['user'].login %>さん

@session['user'].id


Railsでソーシャルブックマークを作ってみようか(第2回) - 坊やがゆく

Railsでお馴染み37signalsのURLが凄い件について:TKMR.blog.show

URLにキーワードを含めことでSEO対策になるかも、でもそれだけ:TKMR.blog.show

http://127.0.0.1:3001

http://127.0.0.1:3001/recipe/list

tetraの外部記憶箱 - Instant Railsのインストール , 追記:phpMyAdminの日本語環境設定 , 未踏ソフト記事

[Ruby]PHP VS Rails (Ruby on Rails)

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