このサイトは株式会社オープンソース・ワークショップの旧サイトです。
新サイトを参照していただけますようお願いいたします。
https://opensource-workshop.jp/
NetCommons開発TIPS
既存モジュールをコピーしてカスタマイズ
こんにちは。
プログラムを担当している牟田口です。
NetCommons2の自分メモです。
NetCommons2で入力値が不正です。不正にアクセスされた可能性があります。
NetCommons2 で「入力値が不正です。不正にアクセスされた可能性があります。」というエラーメッセージが表示され、強制的にログアウトさせられる場合、IP変動が発生している可能性があります。
ガラケー(フューチャーフォン)では、よく発生していましたが、最近は少なくなった気がします。
ガラケー以外でも、プロキシサーバー経由の場合や、組織内ネットワークからインターネットへ行く場合、IP変動するケースがあります。
ネットワーク管理者に相談して、解決できれば良いのですが、なかなか、設定を変更していただけるものではないかなと思います。
その場合、
「セキュリティ管理」→「一般設定」→「セキュリティ設定」
にある、[IP変動を禁止するベース権限]の「管理者」のチェックを外す。
この対応で、IP変動のチェックは無効化されます。
NetCommons2 でSession ××とエラーメッセージが出た後、ログインできなくなった場合
こんにちは。
オープンソース・ワークショップの永原です。
以下の現象がありましたので、ここに書いておきます。
たまーにあるんですよね。
--- 0.NetCommon にログインできない。
Session ×× なんてエラーが出ていたら、Session テーブルが壊れています。
--- 1.バックアップ
// 必ず、バックアップを取ってから実行してください。
// Sessionテーブル名
[prefix]_session
[prefix] はインストール時のテーブルプレフィックス。
--- 2.session テーブルのリペア
// Sessionテーブルのチェック
$ mysqlcheck -c [detabase名] [prefix]_session -u root -p
// Sessionテーブルのリペア
$ mysqlcheck -r [detabase名] [prefix]_session -u root -p
--- 3.上記でダメなら、sessionテーブルのクリア(TRUNCATE)
// Sessionテーブルのクリア(TRUNCATE)
TRUNCATE TABLE [prefix]_session;
--- 4.上記でダメなら、sessionテーブルの作り直し
// [prefix]_session テーブルを削除し、手動でCreate
SQL文は以下にあります。
webapp/modules/install/sql/mysql/table.sql
このSQL 文から、session テーブルの部分を実行。
ただし、テーブル名を[prefix]_session にしてから。
以上
NetCommons2 で強制ログアウトさせられるケースがある。
学内ネットワークから使用している際、強制的にログアウトさせられてしまう。
ということが発生するケースがあります。
--- 原因
学内からのアクセスの際、外に出るときのグローバルIP アドレスが変更される場合に起こります。
初期設定では、管理者権限のユーザのみです。
学校で使用しているネットワーク機器などにより、このような設定がされているケースがあります。
IP変動と呼んでいます。
このIP変動が起こるケースとしては、ネットワーク機器によるケースもありますが、不正な攻撃を受けているケースも想定されます。
そのため、NetCommons2 の初期値では、管理者権限の場合のみ、IP変動が起こると、不正アクセスかもしれないということで、強制ログアウトさせられてしまうように設定されています。
--- 確認
システム管理者権限でログインし、管理(コントロールパネル) > セキュリティ管理 > ログ一覧表示(タブ)を確認すると、IP変動の履歴が確認できます。
--- 設定
セキュリティ管理 > 一般(タブ) > セキュリティ設定詳細 > IP変動を禁止するベース権限 の管理者について、初期値ではチェックが入っているのですが、このチェックを外すことにより、管理者でもIP 変動を許可するようにできます。
これにより、管理者でログイン中にIP変動が起こっても、強制ログアウトさせられることはありません。
maple.iniのvalidateフィルターにエラーメッセージ時下書き時の注意
こんにちは。牟田口です。
NetCommons2のmaple.iniに記載するvalidateフィルター [ValidateDef] にエラーメッセージを時下書きしていたら、エラーメッセージが正しく表示されない動作をしました。
以下回避策です。
- エラーメッセージにlangを指定する場合は、langを使うように統一する
- エラーメッセージ時下書き時は、時下書きのみで統一する
### lang指定統一 - OK
[ValidateDef]
no.required = "1:lang._required,番号"
name.required = "1:lang._required,名前"
mount.numeric = "1:lang.numeric,金額"
#### エラーメッセージ
番号を入力してください。
名前を入力してください。
金額は数値を入力してください。
### 時下書き - OK
[ValidateDef]
no.required = "1:番号を入力してください。"
name.required = "1:名前を入力してください。"
mount.numeric = "1:金額は数値を入力してください。"
#### エラーメッセージ
番号を入力してください。
名前を入力してください。
金額は数値を入力してください。
### 混在 - NG
[ValidateDef]
no.required = "1:lang._required,番号"
name.required = "1:名前を入力してください。"
mount.numeric = "1:lang.numeric,金額"
#### エラーメッセージ
番号を入力してください。
名前を入力してください。
名前を入力してください。
以上です。