タグ

2017年10月10日のブックマーク (17件)

  • ブラウザで仮想通貨を採掘するサービス "Coinhive" について

    ここ最近で急に有名になった、”Coinhive” というサービスがあります。一言でいうと、ブラウザのJavaScriptを利用して仮想通貨 Monero を採掘するためのサービスで、Webサイトに導入することによって来訪者から直接収益をあげたりすることを目的にしています。 有名になったのには理由があって、ユーザーの許可を得ずに勝手に採掘をするサイトが問題になったためです。Pirate Bayの事例などが有名ですね。 個人的にCoinhiveのようなサービスは適切に使われる限り仮想通貨のキラーサービスになりうると期待しています。ここでCoinhiveがどのようなサービスなのか、技術とビジネス両方から注目してみようと思います。 2018-06-12追記: Coinhive をユーザーの許諾なしに利用していたサイトの管理者の方が神奈川県警に家宅捜索を受けたそうです。詳細は経緯の説明サイトを御覧く

    oppara
    oppara 2017/10/10
  • API Gatewayを2つつないでJSON以外の値をJSON Schemaでバリデーションしてみた | DevelopersIO

    API GatewayではJSON schemaによるrequest bodyの検証ができますが、JSON以外の形式で送信される値は検証できません。 Lambdaなどロジックのかけるサービスに値を渡せば複雑な検証や処理ができますが、単純な値の検証だけをしたかったので2つのAPI Gatewayをつないで値を検証してみました。 概要 以下の流れで値を検証します。 値を受け取る(API Gateway1) 値をJSONに変換しAPI Gateway2に送信(API Gateway1) 変換された値を受け取り検証する(API Gateway2) 最終的に送信したいエンドポイントにJsonの値を送信(API Gateway2) また、記事ではJSONの整形にjqを使用していますが、設定自体にはjqは不要です。 jqをインストールしていない環境で検証する際は、コマンドから| jqで整形している部分

    API Gatewayを2つつないでJSON以外の値をJSON Schemaでバリデーションしてみた | DevelopersIO
    oppara
    oppara 2017/10/10
  • API Gatewayを使ってSlackの書き込みをChatWorkに連携する | DevelopersIO

    チャットツールとしてChatWorkとSlackを併用しているのですが、業務では個人的にSlackをあまり利用していません。 しかし、何か連絡が来た時に気づかないと困るという状況でした。 たまにしか見ないものに意識を使うのもなんなので、普段意識を使うチャットツールを1に絞るため、SlackのメッセージをChatWorkに流してみます。 構成 少々変則的ですが、以下の構成でSlackのメッセージをChatWorkに連携します。 SlackのOutgoing WebHooksでAPI Gateway1にメッセージを送信(API Gateway1) Slackから値を受け取る(API Gateway1) 値をJSONに変換しAPI Gateway2に送信(API Gateway1) 変換された値を受け取り検証する(API Gateway2) JSONをChatWorkのAPIで受け取れる値に変

    API Gatewayを使ってSlackの書き込みをChatWorkに連携する | DevelopersIO
    oppara
    oppara 2017/10/10
  • Golangで構造体を使ったJSON操作で出来ることを調べてみた | DevelopersIO

    type JSONSample struct { Field string `json:"field"` Omit string `json:"-"` OmitEmpty string `json:"omit_empty,omitempty"` Num int `json:"num,string"` } func main() { sample := JSONSample{ Field: "field", Omit: "omit", OmitEmpty: "", Num: 1, } bytes, _ := json.Marshal(&sample) fmt.Println(string(bytes)) /* -- output { "field": "field", "num":"1" } - omitは省略されています - omit_emptyは値がないので、JSONではフィールドごと省

    Golangで構造体を使ったJSON操作で出来ることを調べてみた | DevelopersIO
    oppara
    oppara 2017/10/10
  • golang は ゆるふわに JSON を扱えまぁす! — KaoriYa

    以下のツイートにもある通り、一見 golang は struct を定義しないと JSON を扱えないように見えます。他にも似たようなツイートをチラホラと見かけましたが、それらは全部誤解です。そこでこの記事では、golang でゆるふわ (structを定義せず) に JSON を扱う方法を紹介します。 golangrubyのようにゆるふわにJSONは扱えない? https://t.co/olsryDHc5G — bamchoh (@bamchoh) 2016年6月24日 この記事では入力の json.Unmarshal() を取り扱いますが、出力の json.Marshal() にも応用できます。 TL;DR json.Unmarshal() には *interface{} を渡せます interface{} は dproxy を使うと、値のアクセスで楽ができます json.Unmar

    oppara
    oppara 2017/10/10
  • GitHub - mattn/go-jsonpointer

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - mattn/go-jsonpointer
    oppara
    oppara 2017/10/10
  • Nodeでサーバを立ててReactを使ったページでハロワをやってみる | DevelopersIO

    暑いのか寒いのか分からない時期になってまいりました。寒暖差で疲労コンパイルの齋藤です。 今回はNodeでサーバを立てて そこにReactを使ったページを表示してみます。 また、今回は開発環境の構築をメインにしているので開発環境の部分の説明が多くなります。 今回使ったのはざっと以下のライブラリ・ツールです Node v 8.5.0 babel with JSX eslint webpack & webpack-dev-server express サーバーを立てる まずはexpressというライブラリを使ってHTTPサーバーを立てます。 プロジェクトの初期化をしてexpressをインストールします。 npm init -y npm i express -S 今回作成したサーバのソースです。src/server/index.jsに配置しておきます。 const express = requir

    Nodeでサーバを立ててReactを使ったページでハロワをやってみる | DevelopersIO
    oppara
    oppara 2017/10/10
  • Better Debugging with Conditional Breakpoints

    oppara
    oppara 2017/10/10
  • Python 2.7.14から学ぶセキュリティの基本

    (Last Updated On: 2018年10月8日)Python 2.7.14が2017/9/16にリリースされました。Pythonの開発はバージョン3系に移行しており、2系はセキュリティ修正のみのリリースになっています。とは言ってもモジュールの変更を見るとバグフィックスやドキュメント修正も含まれているようです。 Python 2.7.14のリリースはソフトウェアセキュリティの基を学ぶには良い題材になります。 Python 2.7.14リリースノート モジュールまで含めると多くなりすぎるので、コアと組み込み機能の更新のみ取り上げます。バグフィックスの説明だけでは修正の中身が判らない物には注釈を入れています。 Core and Builtins —————– – bpo-30657: Fixed possible integer overflow in PyString_Decode

    Python 2.7.14から学ぶセキュリティの基本
    oppara
    oppara 2017/10/10
  • GitHub - yohgaki/validate-php: A validator module for PHP7

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - yohgaki/validate-php: A validator module for PHP7
    oppara
    oppara 2017/10/10
  • Railsユーザーが真っ先にするべきセキュリティチェック – Brakeman

    (Last Updated On: 2018年8月13日)Railsユーザーがソースコード検査やWebサイト診断を受ける前に真っ先に使った方が良いセキュリティ検査ツールがあまり使われていないように感じています。 Brakemanはかなり良くできたツールです。私は何年も前から補助的に使っています。 Brakemanのインストールと使い方 Brakemanのページを見れば説明の必要もないですが、一応説明します。 rbenvを使っている場合、Railsで利用しているRubyのバージョンをローカルに合わせておきます。Rubyユーザーは普通にrbenvなどを使うべきでしょう。 $ cd MyRailsProject $ rbenv local 2.3.3 Brakemanのgemをインストールします。 $ gem install brakeman Brakemanを実行します。BrakemanはRa

    Railsユーザーが真っ先にするべきセキュリティチェック – Brakeman
    oppara
    oppara 2017/10/10
  • セキュリティ対策が論理的に正しいか検証する方法

    (Last Updated On: 2018年8月13日)全てのセキュリティ対策は緩和策だと考えるべきです。これは個々の対策が完全であるか検証することが容易ではないからです。例えば、SQLインジェクション1つとっても当に完全であるか?検証することは容易ではありません。プログラムが当に思っているように動作するのか?検証する研究は、まだまだ研究段階です。 しかし、容易ではないからといって諦める訳にもいきません。不完全であっても形式的な論理検証は容易にできます。 論理的な正しさを検証する方法 必要十分条件を使って考えると、使わない場合に較べ誤りを少なくできます。プリペアードクエリがSQLインジェクション対策として必要十分であるか考えてみます。SQLインジェクションはSQL文に変数が含まれる”動的クエリ”の場合に発生することを頭に入れておきます。 p – プリペアードクエリを使い全てのパラメー

    セキュリティ対策が論理的に正しいか検証する方法
    oppara
    oppara 2017/10/10
  • 知っておくべきITセキュリティ概念Top 10 〜ショート版〜

    (Last Updated On: 2018年8月16日)ITシステム開発者必修のセキュリティ概念 Top 10です。ここで紹介する概念はセキュリティ設計やセキュアコーディングを行う上で欠かせないモノばかりです。順序はその基礎知識性、重要性、分かり易さで付けています。 では開発者必修のセキュリティ概念 Top 10です。 ※ 長くなったので短い版を作りました。ロング版はこちら 1. ゼロトラスト ゼロトラスト(Zero Trust)とは何も信頼しないことです。言い換えると、検証/保証したモノ以外は信頼しない、です。セキュリティはコアとなる信頼できるモノから、リスクの検証/許容で信頼可能な範囲を広げていきます。 2. 信頼境界線 信頼境界線(Trust Boundary)は信頼可能な範囲の境界です。”ゼロトラスト”で信頼できる範囲を広げても、様々な制約から必ず「ここが限界」という境界ができま

    知っておくべきITセキュリティ概念Top 10 〜ショート版〜
    oppara
    oppara 2017/10/10
  • Linuxのプロセス間通信 - Qiita

    この記事について LinuxのIPC(プロセス間通信)を紹介します。 プロセス間通信とは Inter Process Communication(IPC)はプログラムの実行単位であるプロセスの間で行われるデータ交換のことを指します。プロセスの依存関係は可能な限り疎結合になるようOSで管理されています。そのため、IPCLinux OSの機能を経由して行う必要があります。 OSがプロセスに提供するデータ交換の方法はひとつだけではありません。それぞれ特徴のある多彩な方法を提供しています。 ここで紹介するのは以下の5つです。 共有メモリー セマフォ マップドメモリー パイプ ソケット通信 (他にありましたらコメントで教えていただければ幸いです。) それでは、見ていきましょう。 共有メモリ プロセス間で同じメモリを共有します。 共有メモリの最大の利点はそのアクセススピードにあります。 一度共有メモ

    Linuxのプロセス間通信 - Qiita
    oppara
    oppara 2017/10/10
  • PHPでデータベースに接続するときのまとめ - Qiita

    【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。PDO に関しては大きく変わっていない部分が多いとは思いますが, PHP 8.x 以降での動作保証はありません。 あらかじめ読んでおきたい記事 Qiita - 【PHP超入門】クラス~例外処理~PDOの基礎 by @7968 初心者がやりがちなミス 以下のどれかに1つでも当てはまるコードは見直す必要があります.付録にリンクを貼っておきましたので,「該当するかも?」という人はクリックして飛んで読んでください.太字にしてあるものは脆弱性に直結する危険度の高いものです. mysql_query などの非推奨関数を利用している SET NAMES あるいは SET CHARACTER SET などで文字コードを指定している そもそもデータベース

    PHPでデータベースに接続するときのまとめ - Qiita
    oppara
    oppara 2017/10/10
  • 検索機能におけるベストプラクティス | UX MILK

    Nick Babichはエンジニアであり、UXの愛好者です。テクノロジーに対して情熱をもっています。彼は10年間ソフトウェア業界にて、開発を専門として仕事をしてきました。彼は数々の興味の中で、宣伝や心理学、シネマなどを重視しています。 検索は、ユーザーとアプリ/Webサイト同士の会話のようなものです。ユーザー側は必要な情報を問い合わせ、アプリやWebサイト側は検索結果をもってそれに対応します。 ユーザーは検索をするとき、作業がスムーズに行われることを期待します。そして大抵、1、2回ほど検索した結果の質によって、アプリやWebサイトを即座に評価してしまいます。 検索とその裏側のUIをデザインするとき、考慮すべきたくさんの事柄があります。みなさんが読みやすいように、この記事では検索のベストプラクティスを検索ボックスのデザインと結果ページの配置の2つの領域に分けて紹介しています。 Webサイトご

    検索機能におけるベストプラクティス | UX MILK
    oppara
    oppara 2017/10/10
  • JSONのパース/生成 - はじめてのGo言語

    encoding/jsonパッケージ GoでJSON形式を扱うには、encoding/jsonパッケージを使用します。 パース処理 JSON形式の文字列をパースするには、あらかじめJSONのデータ構造に合わせて構造体を定義し、Unmarshal関数を使用します。 package main import ( "encoding/json" "fmt" ) type Country struct { Name string `json:"name"` Prefectures []Prefecture `json:"prefectures"` } type Prefecture struct { Name string `json:"name"` Capital string `json:"capital"` Population int `json:"population"` } func m

    oppara
    oppara 2017/10/10