PHP

危険なXSS対策

ネットで見かけたXSS対策 最近ネットで、次のようなコードでXSS対策を行なっているサイトを見かけました。 皆さんはこの実装を見てどう思いましたか? 正直、僕はゾッとしました。 今回は、一部サンプルコードなので、ごく一部のタグしか置換していませんが、 皆さんは全ての危険なタグを消去する完璧な正規表現を書く自信はありますか? 僕はないです。 仮に<scriptのような形で全てのタグを置換できた […]

なぜXSS対策が大事なのか?

最近ネットでは、XSS攻撃がし放題のSNS(?)があり話題となていますが、なぜXSS対策を怠ってはいけないのでしょうか? XSS攻撃とは XSS(クロスサイトスクリプティング) は、JavaScriptをサイト内に埋め込み、任意のコードを実行してユーザーを攻撃する手法です。 XSS対策を行っていないと任意のJSをサイト内に埋め込むことができてしまうので、ユーザーを任意のサイトに飛ばすだけではなく、 […]

cURLの様々な使い方

基本 [crayon-5c4221c721bcc362306119/] POST [crayon-5c4221c721bd2598599529/] Cookieの利用 [crayon-5c4221c721bd6180194856/] タイムアウト設定 [crayon-5c4221c721bd8841770526/] エラーハンドリング [crayon-5c4221c721bdd421355757/ […]

PHPでガチャ実装

  • 2018.10.11

今回は、PHPでソシャゲーのガチャを実装する方法を紹介したいと思います。 ガチャを実装するロジックはいろいろと考えられると思いますが、 僕は、まず、排出レアリティを確定からそのレアリティ内でランダムに選ぶのが簡単で初心者にはいいと思います。 ガチャのレアリティと排出率 今回実装するガチャのレアリティと排出率はシンプルに下の3つで行きたいと思います。 レアリティ 排出率 SSR 3% SR 12% […]

PHP7 define()とconstの違い

  • 2018.10.04

PHP7には、定数を定義することができる構文が2つ存在します。 [crayon-5c4221c7227e6978794352/] defineよりもconstの方が関数を呼び出さないので高速に処理をすることができますが、その分制約がいくつかあります。 constではできないこと constの右辺には、式や関数を書くことができません。 [crayon-5c4221c7227ec492671627/] […]

filter_inputのフィルタでよく使うもの

  • 2018.08.06

filter_inputのフィルタは、すぐに忘れてしまうので、個人的によく使用するものをここにまとめておきます。 検証フィルタ フィルタ 内容 FILTER_VALIDATE_INT int型 FILTER_VALIDATE_FLOAT float型 FILTER_VALIDATE_BOOLEAN bool型 FILTER_VALIDATE_URL url FILTER_VALIDATE_EMAI […]

既存のソースを殆ど変えずにfile_get_contents()をcURLにする

PHPで外部ファイルを読み込むとき用に用意されている、file_get_contents関数ですが、一部の外部サイトを上手く読み込めなかったり、タイムアウトを指定していてもタイムアウトされなかったりとAPIなどのデータを取得するには向いていない関数です。 なので、file_get_contents関数よりも速くで、file_get_contents関数で上手く読み込めないサイトを読み込めたりできる […]

PHPを書くときに使っているATOMのpackage5選

ぼくがPHPを書くときに使用しているATOMのpackage5選です。 packageはATOMを開いて「File -> Settings -> Install」からインストール可能です。 less-than-slash </と入力するだけで、HTMLの閉じタグを補完してくれるpackageです。 頭も使わずにただ、タン!タン!ターン!とタグが閉じれるので、楽しいしラクに閉じタグ […]

WPのPHP memory_limitのデフォルト値は40Mらしい

とあるWP製サイトがPHPのメモリ不足でエラーを吐いていました。 PHP Fatal error: Out of memory (allocated ****) (tried to allocate **** bytes) php.iniで設定されている値よりもかなり少ないメモリでエラーを吐いてしまっているので、その原因を調べました。 WPのPHP memory_limitデフォルト値 調べた結果 […]