タグ

ブックマーク / techblog.yahoo.co.jp (14)

  • ヤフーにおけるインプットバリデーション「何も信じるな」 (Yahoo! JAPAN Tech Blog)

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、R&D統括部 開発推進室 セキュリティプラットフォーム技術 セキュリティスペシャリストの戸田 薫です。 今回は、私たちが普段からヤフーのシステムに対する入力にどのような注意を払っているのか、そのいくつかをご紹介致します。 入力とは? Webサイトを運営している場合、どのような入力があるでしょうか? たとえば、Webサービスには、以下の入力があります。 Cookie URL GET/POSTのデータ ファイルのアップロード その他リクエストヘッダ そのほかにもいくつもあります。 環境変数 設定ファイル クローラが取得したデータ パートナー企業のAPIから取得したデータ(XMLやJSONなど) パートナー企業の入稿用 F

    ヤフーにおけるインプットバリデーション「何も信じるな」 (Yahoo! JAPAN Tech Blog)
  • エラーページ - ヤフー株式会社

    指定されたURLは存在しません。 URLが正しく入力されていないか、このページが削除された可能性があります。

    エラーページ - ヤフー株式会社
  • ヤフーのセキュリティに対する取り組みについて 第2回目

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、R&D統括部 開発推進室 セキュリティプラットフォーム技術の戸田 薫です。 セキュリティプラットフォーム技術の取り組みについてご紹介します。 「ヤフーのセキュリティに対する取り組みについて 第1回目」で「アプリケーションを開発するときには、既知の脆弱性を意識して行わなければなりません。」と述べたことについて、ヤフーがどのように取り組んでいるかについてご紹介いたします。 ◆セキュアなシステムを構築するために 安全に利用できるシステムを構築するためには、知識や技術がなければなりません。 そのためにヤフーでは 1:教育 2:アプリケーションのセキュリティ対策 3:ソースコードレビュー 4:脆弱性テスト 5:セキュリティチェ

    ヤフーのセキュリティに対する取り組みについて 第2回目
  • Hadoopを使いこなす(2)

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、 前回のHadoopの記事 に引き続き、MapReduceのカスタマイズポイントを解説していきます。 前回の記事の図や、表などを参照しながら読み進めていただければと思います。 MapperやReducerの流れの制御 Mapperの実行の流れは、デフォルトでは、初期化処理を行った後、map関数を繰り返し実行し、終了処理を行うようになっていますが、この流れ自体を制御することができます。 古いAPIでは、MapRunnerを通じてこの流れを制御できますが、0.20.0からの新しいAPIでは単純にMapperクラスのrun関数をオーバーライドすることで、行えます。 デフォルトのrun関数は以下の通りです。 public vo

    Hadoopを使いこなす(2)
  • Hadoopを使いこなす(1)

    まず、 1 の入力ファイルを分割する方法は、InputFormatクラスの、getSplits関数を上書きすることで、カスタマイズできます。 また、 3 のInputSplitから、KeyとValueを抽出する処理も、InputFormatクラスを通じてカスタマイズできます。 InputFormatのgetRecordReader関数を通じて、RecordReaderクラスを生成するのですが、これに任意のRecordReaderクラスを指定すればOKです。 2 のMap処理ですが、ユーザが指定したMapperクラスの処理を実行します。 Mapperクラスは、MapRunnerクラスを通じて、初期化処理、map関数を繰り返す過程、終了処理といった一連の流れを実行します。 MapRunnerクラスをカスタマイズすれば、こうした流れを制御することができます。 0.20.0からの新しいMapRed

    Hadoopを使いこなす(1)
  • サービス普及のためのユーザーインターフェース指向型サービス開発

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめに 島津悠樹と申します。Yahoo!ブックマークのディレクションを担当しています。エントリーでは、エンジニアのみなさまや企画担当の方を対象にサービス普及施策のヒントとなるような話題をお届けします。 「サービス普及のために何をすべきか?」 おそらくサービス関係者にとって永遠のテーマといえるこの課題に対し、ユーザーインターフェース(UI)を起点にサービスのあり方を考える方法が有効です。 特に効果的と思われるのは「アフォーダンス」と呼ばれる概念を応用した取り組みです。これより詳しくご紹介します。 アフォーダンスとは? 認知心理学の分野から出てきたのが、デザイン業界で転じて、道具の使いやすさ実現のためのキーワードとなりました。その

    サービス普及のためのユーザーインターフェース指向型サービス開発
  • JSONPを使ってJavaScriptだけでマッシュアップ

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、Yahoo!地図の開発を担当しています前田博敏です。 今回は、JavaScriptから外部サイトのWeb APIを直接呼び出すことができる、JSONPという手法について紹介させていださきます。 JSONPとは JSONPとは、JavaScriptの外部ファイル読み込み(「script」タグとその「src」指定)を利用して、ドメインの異なる外部サイトのデータを読み込む手法のことを言います。 JSONPを利用するには、呼び出される側のWeb APIがJSONP形式に対応している必要があります。 Yahoo!デベロッパーネットワークでは、現在のところローカルサーチAPIとショッピングAPIが、JSONP形式に対応しています。

    JSONPを使ってJavaScriptだけでマッシュアップ
  • ソースコードリーディング(killコマンド編)

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、オペレーション統括部(Yahooショッピング担当)の吉野です。 前回お話しさせていただいたlsコマンドをハックしてみようの公開後、多くの方からご意見をいただきました。 その中で目に付いたのは、「ソースコードリーディングはしてみたいがなかなか(時間|機会)がない」というご意見でした。 そこで、今回はソースコードリーディングとして、FreeBSDで動くkillコマンドのソースコードを読んでみたいと思います。 killコマンドとは、ご存じの通りプロセスにシグナルを送るコマンドです。 trussコマンドでトレースしてみても、killシステムコールしか使っていません。 $ truss /bin/kill 12345 kill(

    ソースコードリーディング(killコマンド編)
  • PHPでのデバッグ方法

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog おひさしぶりです。オークション担当の山崎 賢です。 前回はPHP Serialize についてでしたが、 今回はPHPでのデバッグに関してお話します。 基PHPはインタプリタ(厳密にはPHPは内部で一度コンパイルしていますのでインタプリタとは言い切れませんが) のデバッグではログ埋め込みが手軽です。 しかし、まれにSIGSEGVやSIGBUSなどでPHPスクリプトが落ちることがあり、途方にくれます。 地道にログを埋め込んでいき、箇所を特定するのも手法の1つですが、今回はgdbを用いたデバッグ方法を記載したいと思います。 ■STEP1 まずは、プログラムが落ちることを目的として以下のようなPHP Moduleを作成します。 ・ ・

    PHPでのデバッグ方法
  • エンジニアにもわかる「ユーザーインターフェース設計」

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめに 島津悠樹と申します。Yahoo! JAPANのソーシャルメディア系サービスの開発・ユーザーインターフェース(以下UI)設計を担当しています。私からは「エンジニアにもわかる『ユーザーインターフェース設計』」と題し、エンジニアのみなさまに考え方のヒントとなるようなネタをお届けします。 エンジニアの方々にとって、UI設計は、おもしろそう、けれど、どこかとっつきにくい......、そんな印象を持っておられるのではないかと思います。 私も以前はそう思っていました。ですが、とっつきにくさを理由にUI設計をやらないのはもったいない、という思いで試行錯誤した結果、なんとか、UI設計のお仕事をいろいろ担当させていただくことができるようにな

    エンジニアにもわかる「ユーザーインターフェース設計」
  • lsコマンドをハックしてみよう

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ショッピング事業部開発部の吉野です。 Yahoo!ショッピング開発部では新人エンジニア向けにコマンドのソースコードを読むことを奨励しています。 その初期の題材として、lsコマンドがよく挙げられます。 今回は「lsコマンドをハックしてみよう」と題し、lsコマンドについてお話しさせていただきます。 突然ですがエンジニアの皆さん、lsコマンドのソースコードを読んだことはありますか? 読んだことのない方はぜひ一度、目を通しておくことをおすすめします。 意外と知られていませんが、lsはcd,pwdなどのコマンドと違いシェルの組み込みコマンドではありません。 一口にlsと言っても、複数のソースコードが存在します。 代表的なのはGN

    lsコマンドをハックしてみよう
  • ウェブページの高速化に必要なもの

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、オークション事業部のさかいです。 ネットサーフィンに慣れている techblog 読者のみなさんの中には、あちこち見て回っているうちに重いページに行き当たり、イライラしながら応答を待ったり、容赦なくバックスペースキーで前のページに戻ったり…という経験をされた方が多くいらっしゃると思います。 そういったストレスのないレスポンスが行えるよう、バックエンドのプログラムの最適化や、サーバーのチューニングを行うのは私たち技術者の仕事のひとつです。 しかし、あるウェブサイトにアクセスして、そのサイトを閲覧できる状態になるまでの時間のうち、そういったバックエンドでの処理に必要な時間は 1〜2 割でしかないというデータがあります。残り

    ウェブページの高速化に必要なもの
  • Hadoopで、かんたん分散処理 (Yahoo! JAPAN Tech Blog)

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、地域サービス事業部の吉田一星です。 今回は、Hadoopについて、Yahoo! JAPANでの実際の使用例を交えながら書きたいと思います。Hadoopとは、大量のデータを手軽に複数のマシンに分散して処理できるオープンソースのプラットフォームです。 複数のマシンへの分散処理は、プロセス間通信や、障害時への対応などを考えなければならず、プログラマにとって敷居が高いものですが、 Hadoopはそういった面倒くさい分散処理を一手に引き受けてくれます。 1台では処理にかなり時間がかかるような大量のデータも、複数マシンに分散させることで、驚くべきスピードで処理を行うことができます。 例えば、今まで1台でやっていた、あるログ集計処理

    Hadoopで、かんたん分散処理 (Yahoo! JAPAN Tech Blog)
  • PHP SERIALIZEのススメ

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog オークション事業部 開発部のやまけんです。 遅ればせながら、新年明けましておめでとうございます。 さて、オークションTechBlogも第4回目となりました。 今回はWebAPIとしての一つの形態であるPHP Serializeに関してお話します。 WebAPIは、一般的にはRESTと呼ばれるXMLを主体としたレスポンスを返却し、呼び側がXMLを解析するというものが主流となっています。 (RESTには、RESTfulと呼ばれる概念がありますが、それはまた別の機会にお話したいと思います) さて、PHP Serializeですが、これはPHP言語で表現されるデータやクラスをサーバー側で文字列化して、呼び側でデータやクラスに復元するという

    PHP SERIALIZEのススメ
  • 1