WordPressのディレクトリやファイルのパーミッションは何がベストなのか?

VPSでWordPressを運営していると頭を悩ますのがセキュリティ関係だが、今回はWordPressのパーミッションについて書いていく。 今回は色々な記事を参考にすることで「これがベストプラクティスだ」と言うところまでいけたので、備忘録として残しておく。 (参…

PHPのin_arrayの第3引数にはtrueを使う方が良いという話

PHP

PHPではin_arrayと言う、第1引数で指定した要素が第2引数に指定した配列に含まれるかをチェックできる関数がある。 例えば、以下の様に使う事が多い。

WordPressのapply_filters、do_action、add_filter、add_actionの使い方とか違いとか

WordPressでHook(Filter)を使う際に、以下の4つの関数が用意されている。 apply_filters do-action add_filter add_action 今回は、これら4つの関数の使い方や違いを紹介していく。 Hookとは何か? そもそも、add_filterとかで使われているHookとは何なの…

socketのgetaddrinfoの使い方や仕組みについてまとめてみる

今回は、socketのgetaddrinfoの仕組みや使い方についてまとめていく。 getaddrinfoは仕様がごちゃごちゃしていて難しいけど、重要な部分さえ分かれば、あとは細々とした点をその都度調べていけば良いので、ここでは重要な点のみ絞って解説していく。 getaddi…

VPS(Vultr)でSSH接続をする手順。VPS立ち上げからfirewall設定まで

VPS

VPSでSSH接続を行えるようにする手順を紹介していく。 今回は、 VPSを立ち上げる rootユーザーでSSH接続する セキュリティ対策でアクセス制限を行う firewallの設定 ローカル(自分のパソコン)から1コマンドでSSH接続できるようにする と言うところまで行う。…

VPSのSSH接続時に「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 」のエラーが出た時の対処法

VPS

今日は、VPSでサーバーを作っては壊してを繰り返していると、以下のエラーに遭遇した。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@…

Linuxのopen(低水準入出力)の使い方やfopenとの違いをまとめていく

調べていたら思ったよりはまってしまったので、これを機にopenに関してまとめておく。 open の基礎知識 openとは、Unixにおける入出力システムを提供してくれる関数のこと。早い話が、C言語のfopenの低レベルバージョンの関数。 #include <sys/types.h> #include <sys/stat.h> #includ</sys/stat.h></sys/types.h>…

なぜ子プロセスを呼び出した時にsetsid()を使うのか?

「tinytinyhttpd/httpd.cxx at master · mattn/tinytinyhttpd」のコードを読んでいた時に、以下のコードを見かけた。 child = fork(); if (!child) { setsid(); setpgid(0, 0); setsid();とは、新たなセッションを作成する関数だが、なぜ子プロセスの実行前…

C言語からRubyやPHPなどのスクリプト言語を呼び出して、実行結果をC言語に渡す方法

最近、自作httpサーバーをC言語で書いているが、「C言語側からRubyやPHPを呼び出して、そのRubyの実行結果をC言語側に渡す」という方法が分からなかった。 いろいろ調べた所、「これでOK」という方法が見つかったので、備忘録としてまとめていく。 開発環境 …

C言語の安全な文字列コピーは、strcpyよりもstrncpy、そしてstrlcpyが良い

C言語を触っている時に文字列コピーを行いたい場合がありますが、その時にどの関数を使えば良いのか、の考察をしていく。 strcpy 文字列コピーで代表的なのが、strcpy。最もシンプルな関数だが、最も安全性が低いともいえる。 ポイントとしては、コピーされ…