読者です 読者をやめる 読者になる 読者になる

まったり技術ブログ

Technology is power.

【セキュリティ】jwt-goを使ってみる - その2

前回に引き続き「jwt-go」でいろいろ試してみます。 motikan2010.hatenadiary.com 主に署名アルゴリズムの改ざんでの動作確認を行っていきます。 動作確認 署名アルゴリズムを改ざん なぜこんなことを試すのかというと、下記の記事を読んでみると、トークン…

【セキュリティ】jwt-goを使ってみる - その1

前回、RailsのJWTライブラリである"knock"を使って署名アルゴリズムにNoneを使えるのかを試してみた(使えなかった)ので、今回はGo言語のJWTライブラリである"jwt-go“を使って、署名アルゴリズムに「SHA256」と「none」を試した(使えた)ことを書く。 motikan2…

【knock】JSON Web Token(JWT)を使ってみる【セキュリティ編】

前回の続きです。 JSON Web Token(JWT)を使ってみる【実装編】 - まったり技術ブログ 今回はJWTのセキュリティにふれてみます。 JWTは危険なのか ユーザによって値が改ざんされる危険性 knockはどうなのか アルゴリズムを「HS256」 ユーザid:5で認証 「"sub…

【knock】JSON Web Token(JWT)を使ってみる【実装編】

事前準備 新規アプリを生成 Gemfileに追記 モデルの作成 Postモデル Userモデル テストデータの追加 コントローラの作成 PublicPostsコントローラ ルーティング設定 PrivatePostsコントローラ ルーティング設定 動作確認 リクエスト “/public-posts"にアクセ…

ボタンを重ねない『クリックジャッキング』の話

Trap Site 2017年度に入りましたが、昔ながらのクリックジャッキングの話 『クリックジャッキング』ってなんぞやという方は下の記事が大変解りやすいかと。 blog.tokumaru.org クリックジャッキングを成立させることは難しいのか クリックジャッキングのこと…

【Go言語】パスワードをハッシュ化(bcrypt)

・bcrypt.GenerateFromPassword ・bcrypt.CompareHashAndPassword を使ってみる話です。 Go言語を使ったWeb開発で認証機能を実装したくて調べてみたらこんなリポジトリが見つかった。 github.com よく見てみるとパスワード格納はライブラリに含まれておらず…

Webフレームワーク『Gin』を使ってみる

Go言語でWebアプリ開発をしていみたいと思っていましたので、調べてみたらいろいろあるらしい。 概観からGoのWebFrameworkを選ぶ(2016/02) - Qiita その中で速度が速く、人気もある『Gin』を手始めにさわってみることにします。 github.com 作成するものは…

phpbrewでGDライブラリを入れようとしたらエラーになった

PHP

結論から言いますとGDライブラリはyumでインストールすることができなかったので、 結局ソースからインストールしました。 “phpbrew install"が失敗した phpbrewでGDライブラリを入れようとしたら下記のようなエラーが表示された。 $ phpbrew install 5.6.26…

Bluetoothプロキシ『btproxy』を使う

IoTというワードが流行りつつあり、Bluetoothの通信を見てみたいという欲求が出てきたので、Bluetooth通信のプロキシを探してみました。 このキャプチャ技術を応用したら ・Bluetoothデバイス開発のデバッグ ・Bluetoothデバイスに対してのセキュリティ診断 …

『Goutte』を使って文字列からHTML解析

PHP

“通信を発生させずにHTMLを解析"をしたい・・・ 今までPHPでHTML解析するときは「Simple HTML DOM Parser」を利用しており、数年ぶりの利用で使い方を確認しているとこのような記事が。 localdisk.hatenablog.com 「Simple HTML DOM Parser」はパフォーマン…

『Laravel Collective』でのHTML生成を簡単にまとめてみる

LaravelでRailsの"link_to"のようにHTMLを生成できないのかと思い、探してみたら『Laravel Collective』というものがありました。 導入方法などは下記を参照。 Laravel Collective HTML出力のイメージができないところがありましたので、実際に出力させて、…

ScaffoldとAuthを使ってアプリケーションを作る

PHP製のWebフレームワークである『Laravel』を使って"認証あり"のアプリケーションを作成していきます。 今回はLaravelバージョン5.3系を使います。 プロジェクトの作成 $ laravel new auth_scaffold $ cd auth_scaffold $ php artisan --version Laravel Fr…

golang製ベンチマークツール『hey』を使ってみた

Web界隈では「Apache Bench」「JMeter」などのベンチマークツールが有名ですが、ここではGo言語で開発されたベンチマークツール『hey』を紹介します。 github.com 百聞は一見に如かず「hey」!! 結果は下記ような形式で出力されます。abと比べて非常にシンプ…

Webサーバベンチマークツール『weighttp』をさわってみる

Webサーバのベンチマークツールである"weighttp"のインストール・動作確認までを行っていきます。 私の環境ではPythonのバージョン3がデフォルトして動作しており、それが原因でつまずいた点がありましたので、記載しておきます。 github.com インストール …

キャプチャ認証『SimpleCaptcha2』を使ってみる

今回はBot等に自動認証を許さないために用いられる 「CAPTCHA」をRailsアプリケーションに実装してみます。 ImageMagickあたりでつまずいたので、備忘録感覚にメモ。 環境確認とアプリの作成 まずは動作環境の確認とサンプルサプリケーションの作成を行って…

PythonだけでHTTPSサーバ

Secure属性を付与したCookieの取り扱いなど簡単な検証で重宝しています。 HTTPS通信にしようするサーバ証明書の作成 # openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes Webサーバ側のコード ここではWebフレームワークのbottle…

キーボード入力文字列をバイナリデータへ変換

関数inputで入力された値は文字列型として扱われる。 16進数→10進数→バイナリデータ import struct def main(): str = input() str_list = str.split(" ") f = open('test.dat', 'wb') for hex in str_list: f.write(struct.pack('B', int(hex, 16))) f.clos…