新人PGの学び

プログラマーの卵のlog

暗号化と複合化

復号化出来かつ安易に解読されない手法
ハッシュの作り方もMD5やSHAだけでなく、phpではpassword_hashというハッシュ化させてパスワードを返す関数がある。
本来、不可逆的なものだが、レインボーテーブルを使用したレインボー攻撃という方法によって、推測されうる平文とハッシュ値をテーブル化するため、解読自体には時間がかかるようですが、短時間で解読されてしまうようだ。



メモ
可逆的暗号化の方法を調べ、phpのデータを暗号化するmcrypt_generic関数を用いた。
暗号化方法では、base64でエンコードしたものをmcrypt_genericで暗号化し、更にそれをbase64でエンコードし、復号化方法としては、base64でデコードし、mdecrypt_genericで復号化しbase64でデコードすることにしました。
base64とmcrypt_genericの関数と再度base64を組み合わせる3段手法によってパスワードを複雑化させた。


参考になるサイト

【PHP】GETとPOSTの違い、使い分けと使い方を紹介

PHPでのHTML フォーム (GET と POST)

PHPでのデーター送信方法

HTTP通信というプロトコルでWebサーバーとクライアント(Webブラウザなど)がデータを送受信するときに使う。


GET
form要素(タグ)のmethod属性がGET。

URLの末尾に「?」をつけ、「パラメーター名="値"」という形式でデータを送る。


URL自体は誰からでも閲覧可能。
データ量が制限されており、Internet ExplorerではURLに使用できる文字数が2,083文字と決まっているため、パスに使用できる最大文字数は2,048文字となる。
データをURLの末尾につけて送るため、制限される。


POST
form要素(タグ)のmethod属性がPOST。
POSTメソッドで送るデータはWebブラウザ上には現れない。


大量のデータを送信したい場合はPOSTメソッドを用いることになる。
POSTメソッドはHTTP通信で送信(リクエスト)されるので、URLの影響を受けることがない。


PHPのPG内でデータを受け取る変数(配列)

いずれも、HTMLフォームから入力された情報を取得するための「スーパーグローバル変数」と呼ばれる定義済みの連想配列。


$_GET
GET形式のHTMLフォームから入力された情報(getメソッドにより送信された値)


$_POST

POST形式のHTMLフォームから入力された情報(postメソッドにより送信された値)


Smartyでの書き方例

GETリクエスト

//パラメータ取得

if(isset($_GET["login_id"]) && $_GET["login_id"]){

$loginId = $_GET["login_id"];

}

if(isset($_GET["login_pass"]) && $_GET["login_pass"]){

$loginPass = $_GET["login_pass"];

}


//Form
$c_form = new Form($smarty, "login", (isset($pageName) && $pageName) ? $pageName : NULL);
//smartyレンダー
$c_form->setSmartyRender();


POSTリクエスト

//Post内容取得

$post = $c_form->getSubmitValues();



//Post内容のID・PASS取得


$loginId = isset($post['login_id']) ? $post['login_id'] : "";

$loginPass = isset($post['login_pass']) ? $post['login_pass'] : "";


MySQLのコマンド

コマンド一覧

  • 接続されているスレッドの一覧

mysql> SHOW PROCESSLIST;


  • 現在オープンされているテーブルの一覧

mysql> SHOW OPEN TABLES; 


  • ストアドプロシージャの一覧

mysql> SHOW PROCEDURE STATUS; 


  • ユーザー権限一覧

mysql> SHOW GRANTS; 


  • クエリで発生した警告一覧

mysql> SHOW WARNINGS; 


  • クエリで発生したエラー一覧

mysql> SHOW ERRORS; 


  • スレーブサーバでスレーブ情報を確認

         ※レプリケーション遅延などの場合

SHOW SLAVE STATUS \G


  • マスターサーバーの情報確認

SHOW MASTER STATUS \G


show processlistの閲覧内容

mysql> show processlist\G

*************************** 1. row ***************************

Id: 2

User: system user

Host:

db: NULL

Command: Connect

Time: 131706244

State: Has read all relay log; waiting for the slave I/O thread to update it

Info: NULL

Id : 接続識別子。

User : ステートメントを発行した MySQL ユーザ

Host : ステートメントを発行しているクライアントのホスト名

db : デフォルトデータベース

Command : スレッドが実行しているコマンドのタイプ

時刻 : スレッドが現在の状態になってからの秒数

State : スレッドの状態

Info : スレッドが実行中のステートメント


VMware vSphere Clientでのスナップショットの取り方

VMware vSphere(仮想化環境)とは


VMwareESX/ESXiによる仮想環境と、管理機能を提供するVVMware vCenter Server等が存在する。


つまり、VMware ESXは仮想化そのものを行う製品である。
個々の物理マシンにインストールされ、仮想マシンの実行環境そのものを提供する。


VMware vSphere Clientとは

VMware ESX/ESXiやvCenter Serverを操作するためのアプリケーション


VMware vSphere Client スナップショットとは

特定の時点での仮想マシンの状態およびデータを保持できる。
そのため、大きな修正等を仮に入れられる場合等はスナップショット取得することで、


その状態に復旧可能となる。


スナップショットの取り方

電源を切った状態でスナップショットを取ると短時間で可能

  1. イベントリ>【対象サーバー】を選択
  2. コンソールで「shutdown -h now」
  3. ※Ctrl+altで抜ける
  4. 【対象サーバー】右クリック
  5. スナップショット>スナップショットの作成>
  6. ファイル名:【任意のファイル名】
  7. 「OK」クリック
  8. 【対象サーバー】右クリック→電源>パワーオン


以前とったスナップショットに復旧する場合 

  1. 【対象サーバー】右クリック
  2. スナップショット>現在のスナップショットまで戻る
  3. 戻りたいスナップショットを選択→移動


わからない場合の参考にどうぞ


VMwareのスナップショット作成・削除処理の仕組み | 仮想(VMware & Hyper-V)/クラウド・エンジニア技術ブログ

対象を指定してyum update

対象packageのyum update

  • 既にインストールされているバージョンの確認

yum list installed | grep 【対象package】

  • update候補を確認

yum check-update | grep 【対象package】

  • アップデート

yum update 【対象package】

  • アップデートされたか確認

yum list installed | grep 【対象package】


実際にアップデートした場合

  • glibc

yum list installed | grep gkibc

yum check-update | grep glibc

yum update glibc

yum list installed | grep glibc


  • openssl

yum list installed | grep openssl

yum check-update | grep openssl

yum update openssl

yum list installed | grep openssl


  • bash

yum list installed | grep bash

yum check-update | grep bash

yum update bash

yum list installed | grep bash


  • httpd

yum list installed | grep httpd

yum check-update | grep httpd

yum update httpd

yum list installed | grep httpd


  • kernel

yum list installed | grep kernel

yum check-update | grep kernel

yum update kernel

yum list installed | grep kernel

→develとheadersがかからないため指定してupdate

yum update kernel-devel kernel-headers

※kernel-devel:サードパーティあるいはオリジナルのドライバをビルドする場合に最低限必要になるファイル一式。ヘッダファイル、makefile等で構成される。

  • perl

yum list installed | grep perl

yum check-update | grep perl

yum update perl

yum list installed | grep perl