ブックマーク / blog.ohgaki.net (8)

  • マイナンバーのチェックデジット確認

    (Last Updated On: 2018年8月13日)マイナンバーのチェックデジットを確認する必要があったのでPHP関数を作りました。 個人番号 マイナンバー(個人番号)のチェックデジットの計算式は法律に記載されています。 第五条  令第八条の総務省令で定める算式は、次に掲げる算式とする。 算式 11―(n=1(シグマ)11(Pn×Qn))を11で除した余り) ただし、(n=1(シグマ)11(Pn×Qn))を11で除した余り≦1の場合は、0とする。 算式の符号 Pn 個人番号を構成する検査用数字以外の十一桁の番号の最下位の桁を1桁目としたときのn桁目の数字 Qn 1≦n≦6のとき n+1 7≦n≦11のとき n―5 <?php // 個人用マイナンバーのチェックデジットを計算し確認。(注:法人用は異る) // アルゴリズムは // http://law.e-gov.go.jp/anno

    マイナンバーのチェックデジット確認
    masa-wo
    masa-wo 2015/10/09
  • ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション 〜 ただし出力対策も必須です 〜

    (Last Updated On: 2019年2月18日)入力バリデーションはセキュリティ対策として最も重要なセキュリティ対策です。なぜセキュリティ対策であるのか?を理解していない方も見かけますが「ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション」の効果と拡張方法を見れば解るのではないでしょうか? ソフトウェア開発者が知っておくべきセキュリティの定義/標準/ガイドで紹介しているセキュリティガイドラインでは入力バリデーションが最も重要なセキュリティ対策であるとしています。 厳格な入力バリデーションを行うと、開発者が意識しなくても、非常に多くの脆弱性を利用した攻撃を防止できます。今回は比較的緩い入力バリデーション関数でも、ほとんどのインジェクション攻撃を防止できることを紹介します。 重要:セキュア/防御的プログラミングでは入力と出力のセキュリティ対策は”独立”した対策です。ど

    ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション 〜 ただし出力対策も必須です 〜
    masa-wo
    masa-wo 2015/06/15
  • 徳丸浩氏との長年の議論に終止符 – 論理的/体系的セキュリティとそれ以外

    (Last Updated On: 2018年8月4日)私が長年徳丸さんと議論していることをご存知の方も多いと思います。徳丸さんがなぜ論理的に矛盾する主張、明らかにセキュリティ標準規格/ベストプラクティスに反する主張を繰り返えしたのか、その理由が判明しました。それと同時に長年の議論に終止符が打たれ、徳丸さんの考えを完全に理解することができたと思われます。 徳丸さんがセキュリティ対策製品であるWAF(Web Application Firewall)を販売/推奨しつつ、アプリケーション側のファイアーウォールと言える「入力バリデーション」を「セキュリティ対策ではない」と主張されるのは、ジョブセキュリティやステスルマーケティングの類ではないのか?と思えるほどでした。アプリケーションがバリデーションしなければしないほどWAFの有効性は上がり、WAFが売れるでしょう。「WAFはセキュリティ対策」「ア

    徳丸浩氏との長年の議論に終止符 – 論理的/体系的セキュリティとそれ以外
    masa-wo
    masa-wo 2015/02/16
  • PHP7の現状

    (Last Updated On: 2018年8月13日)PHP7が今年の秋リリースされる予定です。まだまだ多くの変更が行われる予定ですが、現状を簡単にまとめてみたいと思います。代表的な物のみ取り上げています。 ご存知ない方の為に書いておきます。現在リリースされているPHPPHP5です。次のPHPPHP7になり、PHP6はリリースされません。PHP6をUnicodeをネイティブ文字列としてサポートするバージョンとして開発されましたが、文字エンコーディングチェックを内部で自動的に行おうとするなど、無駄が多く遅いため破棄されました。(文字エンコーディングのバリデーションは来アプリでするものです)このため、PHP6はスキップされ次のPHPPHP7になります。 追記:PHP7.0は既にリリースされています。概要はPHP 7.0の概要・新機能・互換性、詳しくはマイグレーションドキュメントをご

    PHP7の現状
    masa-wo
    masa-wo 2015/01/26
    「次のPHPはPHP7になり、PHP6はリリースされません」
  • ActiveRecordのSQLインジェクションパターン

    (Last Updated On: 2018年10月7日)Railsで多用されているActiveRecordのインジェクションパターンを簡単に紹介します。出典はrails-sqli.orgなのでより詳しい解説はこちらで確認してください。特に気をつける必要があると思われる物のみをピックアップしました。 Exists?メソッド User.exists? params[:user] params[:user]などの使い方は危険です。RailsPHPなどと同様にuser[]というパラメーターで配列化します。 ?user[]=1 が入力の場合、 SELECT 1 AS one FROM "users" WHERE (1) LIMIT 1 となり不正なクエリが実行されます。 Calculateメソッド CalculateメソッドはSQLの集約関数を実行するメソッドです。average、calcula

    ActiveRecordのSQLインジェクションパターン
    masa-wo
    masa-wo 2014/05/10
  • PHP 5.6の新機能

    (Last Updated On: 2018年8月13日)PHP Advent Calender 2013、3日目の参加エントリです。前日のPHP の配列を使った手品とその種明かしに続き3日目です。PHPの配列(ハッシュ)のキーはバイナリセーフなので何でも入れられる、ということはあまり知られていないですよね。面白い話だったと思います。 私のネタには面白さはありません。予めご了承ください :-) さて今日のテーマのPHP5.6新機能です。PHPプロジェクトのgitレポジトリでは既にPHP5.6用のブランチが作成されています。PHP 5.6は来春リリース予定です。 大ニュース(?)だったので多くの方はご存知だと思いますが、PHPは毎年新しいマイナーバージョンをリリースします。メンテナンスされるのは2つのバージョンのみです。つまりPHP 5.6がリリースされるとPHP 5.4はEOL(メンテナン

    PHP 5.6の新機能
    masa-wo
    masa-wo 2013/12/04
  • JavaScript: / の \ によるエスケープのみによるセキュリティ対策は禁止

    (Last Updated On: 2018年8月4日)RFC 4696をもう一度読みなおしてみると/もエスケープ可能文字に定義してありました。JavaScriptのエスケープシークエンスの処理の部分も間違っていたので全面的に書き直します。 RFC 4696(JSON)の定義では string = quotation-mark *char quotation-mark char = unescaped / escape ( %x22 / ; ” quotation mark U+0022 %x5C / ; \ reverse solidus U+005C %x2F / ; / solidus U+002F %x62 / ; b backspace U+0008 %x66 / ; f form feed U+000C %x6E / ; n line feed U+000A %x72 / ;

    JavaScript: / の \ によるエスケープのみによるセキュリティ対策は禁止
    masa-wo
    masa-wo 2013/11/18
  • ChatWorkのコピーサイトを調べてみました

    (Last Updated On: 2018年8月4日)ChatWorkをまるごとコピーしたコピーサイトが中国に登場で紹介したように、まるごとコピーしたサイトが現れました。こういうコピーサイトが現れると、内部のソースコードが漏洩したのでは?と不安になる方も居ると思います。調べてみたので参考にして下さい。 ChatWorkの画面 コピーサイトのWokingIMの画面 まず結論から書きます。サーバー側のソースコードは漏洩しておらず、HTMLCSS、イメージなど外部から取得した物、通信などからリバースエンジニアリングした物と思われます。 家ChatWorkとコピーChatWorkとの違いを、アカウントを作成し外見から分かる範囲で調べてみました。 まずサーバーのIPアドレスとドメイン保持者ですが間違いなく中国です。 プロバイダ:China Telecom ドメイン保持者:HICHINA ZHI

    ChatWorkのコピーサイトを調べてみました
    masa-wo
    masa-wo 2013/11/11
    うは
  • 1