【V5計画】CAFEMILK SHOPPING CART V5 (113レス)
1-

31: 2009/07/25(土)21:54 ID:EVQjpFBn(1) AAS
>>1です

ZENでショップにトロイを仕込まれるトラブルが発生してます。
CSRF脆弱性を突いてアップロードされたそうです。
自動ツールで攻撃されているようで、被害は多数に及んでいるはずです。
大半のショップは問題に気づいていないでしょう。恐ろしいことです。
外部リンク[php]:zen-cart.jp

CAFEMILKでは
CSRF脆弱性は独自の「実行リクエスト保護多重セッション」によって防止
されている
アップロードされたファイルのMIMEタイプを読んで決められたMIMEタイプ
省4
32: 2009/07/25(土)21:57 ID:PUE3LKWG(1) AAS
CAFEMILKは、既存の脆弱性についてはすべてについて入念に対応したと
公言しています。
その内容は上に書いたとおりで、なかなかよくやっていると思います。
33: 2009/07/25(土)21:59 ID:BwZLCaSC(1) AAS
すいません
既存の > 既知の
でした。
34: 2009/07/25(土)22:03 ID:??? AAS
>>1 って作者?
35: 2009/07/27(月)01:31 ID:??? AAS
CSRFなんて昔は気にされていなかったものだしあとから対応ってことが難しいからここのような後発の製品に強みがあるんだな
一般にショッピングカートと名がついているものの大半はCSRFなんか放置してるだろうに
いまCSRFに対する完全な防御を謳っている製品がどんだけあるだろうか
36: 2009/07/27(月)12:43 ID:??? AAS
■ サブルーチン(など)のルール

サブルーチンの呼び出しは以下のようにして行うとルール化されている

[呼び出す側]
パッケージ名::サブルーチン名
 ({
 config => $config,
 userdata => $userdata,
 log_error => $log_error,
 log_alert => $log_alert,
 status => $status,
省12
37: 2009/07/27(月)12:45 ID:??? AAS
オブジェクト方式についてもだいたい同様

[例]
my $database = Cafemilk_database_log->connect
 ({
 config => $config,
 userdata => $userdata,
 log_error => $log_error,
 log_alert => $log_alert,
 status => $status,
  column_filename => 'database/item_column_list.csv',
省8
38
(1): 2009/07/27(月)12:47 ID:??? AAS
ルールの意味をわかりやすく説明するサンプルコード

my $userdata = {};
$userdata->{test} = 1; ← ? 格納した情報を
require 'test.pl'
Test::testsub
 ({
 config => $config,
 userdata => $userdata,
 log_error => $log_error,
 log_alert => $log_alert,
省14
39
(1): 2009/07/27(月)12:57 ID:??? AAS
■ CGIモジュール

モジュールCGI.pmは以下のようにして呼び出される

$userdata->{cgi_query} = CGI->new();

こうすることでCGIオブジェクトはdieしなくなるので、どこからでも呼び出して利用できる
(CGI.pmはフォーム関連の環境変数を消してしまうので2度のuseができない)

[例]
my @param_list = $userdata->{cgi_query}->param();
40: 2009/07/27(月)13:01 ID:??? AAS
>>38の訂正 ちょっとだけ

require 'test.pl' > require 'test.pl';
sub test > sub testsub
41: 2009/07/27(月)13:04 ID:??? AAS
>>39 ちょっとだけ

2度のuse > 2度のnew
42: 2009/07/27(月)20:55 ID:??? AAS
このスレの書き込み、なにがしたいんだ?
43: 2009/07/28(火)00:49 ID:??? AAS
誰かがプログラム解析して情報載せてるんだろ
どこかwikiでも紹介したらそちらに行くんじゃ?
44: 2009/07/28(火)01:10 ID:??? AAS
ここはWEBプログラミング板だったよな
45: 2009/07/28(火)18:06 ID:??? AAS
■ データベース

独自のモジュールを使う
CSV形式
エクセルに対応してるらしい
カラム名を指定して操作する

2種類
通常
 商品や会員などを扱う
ログ
 レコードの操作があまりできない 読込と追記専門
省2
46: 2009/07/28(火)18:08 ID:??? AAS
基本的な使い方
my $database = Cafemilk_database_basic->connect ← オブジェクト方式connectで呼び出す
 ({
 config => $config,
 userdata => $userdata,
 log_error => $log_error,
 log_alert => $log_alert,
 status => $status,
 column_filename => 'database/item_column_list.csv', ← カラム名の情報
 column_separator => ',',
省9
47: 2009/07/28(火)18:15 ID:??? AAS
レコードのマッチングをしたいとき
$database->get_record_all();
$database->match_database
 ({
 column_name => 'カラム名',
 match_word => '値',
 });
my @lines = $database->get_extract_database();

レコードのサーチをしたいとき
$database->get_record_all();
省13
48: 2009/07/28(火)18:24 ID:??? AAS
レコードのソートをしたいとき
$database->get_record_all();
$database->sort_database
 ({
 column_name => 'カラム名',
 reverse_mode => '0', ← reverseしない
 sort_mode => 'number_quick', ← number_quickかcharacter_quick
 });
my @lines = $database->get_extract_database();

特定のレコードを差し替えたいとき
省7
49: 2009/07/28(火)18:28 ID:??? AAS
特定のレコードを削除したいとき
$database->delete_record
 ({
 extract_column_name => 'カラム名', ← ターゲットのレコードを特定するために指定
 extract_column_value => '値', ← ターゲットのレコードを特定するために指定
 });
 → 削除は予約になるのでこのあとoverwriteが必要

操作したデータベースを格納(予約)
$database->set_extract_database
 ({
省8
50: 2009/07/29(水)13:10 ID:??? AAS
特定のレコード(1件)の抽出
my $extract_database = $database->extract_last_record
 ({
 extract_column_name => 'カラム名',
 extract_column_value => '値',
 });
 → 通常では最初の該当レコードが、ログでは最後の該当レコードが帰ってくる

レコードの内容の取得
 →レコードの内容をいろいろ操作するために必要
my @lines = $database->get_extract_database();
省17
1-
あと 63 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.007s