まったり技術ブログ

主にWebエンジニア向けのセキュリティブログ。たまに開発も

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

はじめに 動作確認 署名アルゴリズムを改ざん ①トークンを取得 ②署名アルゴリズムを"none"に改ざんしてリクエストを送信 トークン発行時「SHA256」、検証には「none」 署名アルゴリズムを"none"に改ざんしてリクエストを送信 おまけ トークン発行時「none」…

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

はじめに main.go 動作確認 サンプルなどでよく見られる"HS256"を使用 ①トークン必要URLにアクセス ②トークンを取得 ③発行されたトークンを送信 ④トークンを改ざんして送信 危険と言われている署名の検証なし"None"を使用 ①トークン必要URLにアクセス ②トー…

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

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

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

github.com JSON Web Tokenの説明は下記の記事を参照。 qiita.com

【Webセキュリティ】ボタンを重ねない『クリックジャッキング』の話

はじめに 検証 クリックジャッキングを成立させることは難しいのか どこをクリックしてもターゲットとなるボタンを押下させる ターゲットとなるiframeは下記のように記述 divがマウスカーソルに追跡するように記述 はじめに ▼ デモサイト Trap Site 2017年度…

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

はじめに 「sessionauth」を使ってのパスワード保存状態 パスワードのハッシュ化 パスワード文字列とハッシュ値を比較 ハッシュ値の生成・比較を1つのコードにまとめる 認証のデモ 出力結果 更新履歴 はじめに 本記事は、 ・bcrypt.GenerateFromPassword ・b…

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

はじめに 実装 1. HTMLテンプレートを呼び出す 1-1. HTMLテンプレート作成 1-2. 動作確認 2. コントローラを作る 2-1. タスク一覧を渡すコントローラ作成 2-2. コントローラの呼び出し 2-3. テンプレートを修正 3. モデルを作成して、DBにタスクを保存する 3…

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

PHP

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

Bluetoothプロキシ『btproxy』を使う【IoTセキュリティ】

はじめに btproxyをRaspberryPi3に導入 BlueZをインストールする前の下準備 必要パッケージのインストール(※失敗) APTのパッケージリストの更新 再び必要パッケージのインストール BlueZ − インストール btproxy − インストール btproxyを使う 動作確認 通信…

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

PHP

はじめに 通信を発生させずにHTMLを解析 はじめに 「"通信を発生させずにHTMLを解析"をしたい・・・」という要望があったので執筆。 今までPHPでHTML解析するときは「Simple HTML DOM Parser」を利用しており、数年ぶりの利用で使い方を確認していると下記の…

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

はじめに LaravelでRailsの"link_to"のようにHTMLを生成できないのかと思い、探してみたら「Laravel Collective」というものがありました。 導入方法などは下記を参照。 LaravelCollective | HTML v5.3 HTML出力のイメージがしづらい部分があると思われるの…

【Laravel 5.3】『Scaffold』と『Auth』を使ってアプリケーションを作る

はじめに 構築 プロジェクトの作成 Scaffoldの導入 サービスプロバイダーの追加 scaffoldの実行 ルーティングの設定 データベースの作成 マイグレーション Webアプリケーションへアクセス 認証機能(Auth)の導入 魔法の呪文『make:auth』 認証の確認 認証後の…

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

はじめに 百聞は一見に如かず「hey」を使う インストール 動作確認(オプションを指定) GETリクエストを送信 POSTリクエストを送信 Basic認証に対応 まとめ 更新履歴 はじめに Web界隈では「Apache Bench」「JMeter」などのベンチマークツールが有名ですが、…

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

はじめに 導入 configure 実施 configure 実行(失敗: Python3で動かしたことが原因) configure 実行(2度目の失敗: ev.hが見つからなかった) ヘッダファイル"ev.h"を移動 configure 実行(成功!!) ビルド インストール 「weighttp」コマンドの動作確認 「w…

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

はじめに 環境確認とアプリの作成 「simple-captcha」の追加(失敗) simple-captchaのセットアップ 『SimpleCaptcha2』のセットアップ 改めて「rails generate simple_captcha」コマンド テストアプリを作成 ビューを変更 ブラウザでキャプチャの確認 キャ…

『Pythonだけ』でHTTPSサーバ

はじめに HTTPS通信に使用するサーバ証明書の作成 アプリケーションの準備 依存Pythonライブラリのインストール ソースコード 動作確認 ブラウザ curlコマンド 参考 更新履歴 はじめに Secure属性を付与したCookieの取り扱いなど簡単な検証で重宝しています…

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

関数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.p…