Entries

へたれ設定

とりあえずLVMに挑戦。
fdiskで8eを設定して、
/sbin/lvmでpvcreate,vgextentとかする。
extent2fsとかなんとかすると増えるはずなんだけど、途中で止まっちゃうんだわ。

すごい中途半端な増え方。
どっかで練習せなあかんな。

あとDNSも自力設定。
MXレコードの設定とAレコードの設定でいいん?
あー。本当に何にも知らないですねー。
あと1Uのネットワークボード増設にはライザーカードが必要というのも知らなかった。
ボードが900円くらいで1万円もするライザーカードかってられねーって。

新規サーバ設定

ffmepgの導入 宣伝のffmepgで作る…を参照
userの設定、パスワード表記入 パスワード表に記入
ftp-onlyユーザ FTPonlyユーザの設定
SSH rootログイン禁止 ssh接続でrootによるログインを許可するには
rootkitの導入 rootkitの設定
selinux無効 SELinux無効
ntp設定 fedora core時間
/etc/php.ini php.iniでよく設定する項目群
/etc/my.conf     MySQL のパラメータチューニング
mod_limitipconnの導入 接続数/帯域制限で無法なダウンローダを撃退
path は /usr/sbin/apxsで。
要 yum install gcc
apxs apxsとはなんですか?
.htaccessの設定 特定の参照元(Referer)の禁止と許可


こんなもんか?

XSS対策

htmlspecialcharacterでpostやgetの値を検査すればいいのは分かります。
あとは危険度ですね。

test
>test
というパターンが表示されておりました。
ここでも表示されますが、これは危険!というのはどこで見極めたら
いいんですかねー。

あと前回のセッションですが、完全にうまくいく方法が見つかりました。

まずセッションは1つのPCでのみ持ちます。
session_start();
if( isset($_GET['return']) ){
$return = $_GET['return'];
}

//打ち返す!
if( isset($_SESSION['key']) ){
$session = "key|".serialize($_SESSION['id']);
$ss  = urlencode(base64_encode($session));
header("Location: ".$return."?ss=$ss");
}else{
header("Location: ".$return);
}
これで、リモートにセッション情報を、ピンポイントで取得できます。
session_encodeは全てエンコードしてしまうので、上のコードの通り、
ピンポイントにエンコードすればいいと思います。
戻すときはurlは元に戻ってるので、$array = unserialize(base_64_decode($ss));
のように戻すのがいいと思います。
そしてBコンピュータ側では、セッションではなくてhiddenで引き回します。
これで、AとBとは完全に同期したセッション情報を持つ事ができます。

シンクロナイズは便利だ

結局シンクロナイズとisset($_SESSION(KEY))を使う事で複数サイトの
セッション同期を実現できました。
決まり切った動作については、ネット越しに、serializeとunserializeを利用する
事で、配列の引き渡しを実現しますね。

だいたいPHPの問題は無くなっちゃいました。
次はAjax勉強します。

IP越しのセッション維持

とりあえずセッション文字列を暗号化して引き渡すことで、IP越しにセッションを共有することが
できました。
サーバーBで認証が必要なときに、サーバーAで認証可能です。
しかし問題はサーバーBでのセッションの寿命ですね。
サーバーAでセッションの寿命がある間にBで切れても困るし、
Bだけで寿命があっても困る。
そこで、BからA、AからBの遷移の時にはセッションを持ちまわる必要があります。
面倒だけど、それが解決ですね。
ログアウトしたら、セッションがない事を持ち歩きます。

これで解決。