タグ

ブックマーク / qiita.com (161)

  • 水原一平で CORS を理解したい - Qiita

    ワイ -> 水原一平 「水原一平さん、今日も天気がいいですな」 *1 水原一平 -> ワイ 「そやな、ところで大谷翔平から銀行口座の暗証番号を聞いてきてや」 ワイ -> 大谷翔平 「大谷翔平さん、水原一平さんから銀行口座の暗証番号を聞いて来てっていわれました」 大谷翔平 -> ワイ 「銀行口座の暗証番号はこれやで、でも教えてもいい人は資産管理会社の社長だけやで」 *2 ワイ 「水原一平は教えてもいい人じゃないやんけ、ほな暗証番号を教えるのはやめとこ」 *3 *1 うっかり悪意のある人、サイトにアクセスしてしまった設定... *2 極悪人の「水原一平から聞いてきてって言われた」って伝えているのに大谷翔平はピュアJ民だからワイに暗証番号を教えてくれる... *3 ワイが「これアカンやつやんけ」って大谷から返信を貰った段階で気づいて止める, 大谷が指摘するわけではないこと、大谷からメッセージを受

    水原一平で CORS を理解したい - Qiita
    ockeghem
    ockeghem 2024/06/02
    うっかり読んでしまったが、CORSの話がまったく出ていなかった。おそらくこうかなと分かる人は、既にCORSを理解している
  • なぜsortコマンドはuniq機能を含んでいるのか?(Unix哲学はどこ行った!?) - Qiita

    Unix 哲学的に考えれば、行を並び替える sort コマンドと重複行を取り除く uniq コマンドは別のコマンドであるべきなように思えます。しかし sort コマンドには -u オプションとして uniq コマンドに相当する機能が組み込まれています。なぜそうなっている(そうなってしまった)のかを「ソフトウェア作法(さくほう)」を参照しながらこの記事で明らかにしたいと思います。 関連記事 Unix哲学「一つのことをうまくやる」は単機能のコマンドを作ることではない 「誰」がuniq機能をsortコマンドに組み込んだ!? 熱烈的な Unix 哲学の信者は「どうせ Unix 哲学を理解しない GNU が便利だと思ってオプションを追加したのだろう」と考えるかもしれません。しかし uniq 機能が組み込まれたのは Version 7 Unix、つまり Unix の開発者が組み込んだのです。これは 1

    なぜsortコマンドはuniq機能を含んでいるのか?(Unix哲学はどこ行った!?) - Qiita
    ockeghem
    ockeghem 2024/05/17
    面白い記事だったが、「ソフトウェア作法」が懐かしすぎて後半は感慨にふけりながら読んでいました
  • PHPカンファレンスの過去14+3回の登壇を振り返る - Qiita

    PHP Advent Calendar 2023の18日目の記事です。 PHPカンファレンスに登壇した記録を書きたいと思います。数えてみますと、2009年から昨年(2022年)までのPHPカンファレンス14回と、北海道2回、関西1回の合計17回登壇したことになります。 最初の登壇は14年前ですので、私の考えも当時からは変化していますので、そのあたりも触れながら紹介していきたいと思います。 PHP カンファレンス 2009 最初の登壇は2009年のPHPカンファレンスでした。この年はビジネスデイとテックデイに分かれていまして、ビジネスデイで登壇依頼を頂きましたので、当時温めていた「ウェブサイトを発注する際のセキュリティ」についてお話しました。 スライドの中で「脅威分析やってもあまり意味ない」みたいな物騒な意見が書いてあります。当時はそのように考えていたわけですが、これは当時のサイトがECサイ

    PHPカンファレンスの過去14+3回の登壇を振り返る - Qiita
    ockeghem
    ockeghem 2023/12/18
    日記書いた。PHP Advent Calendar 2023の18日目の記事です
  • 【2024年最新】エンジニア向けおすすめ書籍 - Qiita

    はじめに 今回はエンジニア初心者から中級者が読むべき書籍を10冊厳選して紹介します。 1年目の自分に読んでもらいたい書籍としてまとめました。 リーダブルコード エンジニアの必読書 他の人が理解しやすいコードの書き方が学べる 我流からの脱却 豊富なコードが掲載されているので実践しやすい 「美しいコードを見ると感動する。優れたコードは見た瞬間に何をしているかが伝わってくる。そういうコードは使うのが楽しいし、 自分のコードもそうあるべきだと思わせてくれる。書の目的は、君のコードを良くすることだ」(書「はじめに」より)。 コードは理解しやすくなければならない。書はこの原則を日々のコーディングの様々な場面に当てはめる方法を紹介します。 名前の付け方、コメントの書き方など表面上の改善について。コードを動かすための制御フロー、論理式、変数などループとロジックについて。 またコードを再構成するための

    【2024年最新】エンジニア向けおすすめ書籍 - Qiita
    ockeghem
    ockeghem 2023/12/14
    「最新」という割には古典的な本ばかりだなぁと思いながら読んでいたら私の本も紹介されていた(ありがとうございます)
  • 「0.1+0.2≠0.3」を説明できないエンジニアがいるらしい - Qiita

    この記事はNuco Advent Calendar 2023の4日目の記事です。 弊社では、経験の有無を問わず、社員やインターン生の採用を行っています。 興味のある方はこちらをご覧ください。 はじめに 後輩に 「なぜ0.1+0.2≠0.3になるんですか?」 と聞かれて答えられますか? コンピュータの計算では「0.1+0.2」は「0.3」になりません。 これを理解していないと予期せぬ重大なバグを生み出す可能性があります。 分からない方、どうぞ安心してください。 この記事を読んだ全員が「0.1+0.2≠0.3」を理解できるように分かりやすく説明していきます。 コンピュータが計算を間違う理由 まず、そもそも「0.1+0.2=0.3」で正しい!「0.1+0.2≠0.3」なんてあり得ない! という方のために、プログラミング言語のフォーマット処理を経ない、コンピュータの計算結果を見てみます。

    「0.1+0.2≠0.3」を説明できないエンジニアがいるらしい - Qiita
    ockeghem
    ockeghem 2023/12/05
    既に盛大に指摘されているけど2進数の小数の場合の話ね。身近なところでは、SQLでSELECT 0.1+0.2; を計算すると、10進数で正確な0.3になるよ(MySQLとPostgreSQLで確認)
  • Cookie の HttpOnly 属性について勘違いしていたこと - Qiita

    追記 コメントありがとうございます、ご指摘を参考に読みやすくなるように修正しました! はじめに (記事は初歩的な内容ですが、少なくとも僕は引っかかったので記事化したものです) Cookie に HttpOnly という属性があります。 この HttpOnly を設定することで JavaScript からの直接の参照・操作を禁止することによって、XSS などの手法によって悪意のある第三者から Cookie の内容を見られるのを防止することができます。 ここまでは多くの記事に書いてあるのですが、私は一点ずっと勘違いしていました。 いや、直接値を読み取れないってだけで、API呼び出しとかの時に使えないってわけじゃないんかーーーーーーーーーーい!!! いや、まあそれすらできなかったら何のための Cookie なんですかという話なのでそりゃそうなんですが... ということで見ていきます。 実装例(

    Cookie の HttpOnly 属性について勘違いしていたこと - Qiita
    ockeghem
    ockeghem 2023/12/01
    これは勘違いしている人が多そうなのでシェア
  • 私がエンジニアをイラっとさせてきた質問時の態度5選 - Qiita

    上司に質問をすると、いつも相手を不機嫌にさせてしまいます…」 このような悩みを持つエンジニアは少なくないのではないでしょうか。実際、誰もが「こんな質問をして怒られたらどうしよう」と躊躇したことがあるでしょう。 ただ、もしかしたらその悩みは簡単に解消できるかもしれません。なぜなら、エンジニアがイラっとする質問の態度はある程度きまっているからです。質問者として適切な態度を理解することで、質問が改善されるはずです。 はじめに まず、これは全員の共通認識だと思うのですが、大前提として『質問をすること』は難しいです。ですので、この記事ではあえて「良い質問」と「悪い質問」の違いには触れません。その手の議論にはすでに飽き飽きしているからです。 次に、エンジニアという生き物について説明します。多くのエンジニア技術力を身につける必要があるため勤勉家な人が多いです。少なくとも私は「自分で学ぶ気のない人に厳

    私がエンジニアをイラっとさせてきた質問時の態度5選 - Qiita
    ockeghem
    ockeghem 2023/10/23
    回答側としては「基本的なことかもしれませんが…」に対しては、「おう、待ってました。基本的なことこそ聞いてくれ」と対応したいものです
  • Amazon の 2段階認証 突破の噂についての仮説 と 2段階認証で意識すること【2FA/2SV/MFA】 - Qiita

    Amazon2段階認証(2SV)が突破された? Amazon2段階認証(2SV) が突破されたのではないかという件が話題になっています。 私もこれについてはとても気になっており、できるだけ早く真相が解明されることを願っています。 そこで、ふと疑問に感じたことが、2SV は何をどの程度防いでくれるのかということです。 ここでは、Amazon を例に、いろんなことを考えていきたいと思います。 フィッシングの前には無力 まず、2SVの突破と言っても様々な手口があります。 徳丸先生の動画が示す通り、中継型フィッシングであれば、自ら正しい認証情報を入力することになるので、2SVを設定していようがいまいが突破されてしまいます。 フィッシングではなく、かつ、TOTPでも突破されたケースも 今回の被害者には、中間者攻撃やフィッシングを受ける状態になかったと仰っている方がいました。 なので、何か

    Amazon の 2段階認証 突破の噂についての仮説 と 2段階認証で意識すること【2FA/2SV/MFA】 - Qiita
    ockeghem
    ockeghem 2023/10/11
    私の動画も紹介頂きありがとうございます。原因不明ですが、1段回目のパスワードを突破されなければ大丈夫なので、この機会にパスワードをより安全なものにするのは有効ですよね
  • VSCodeでPython書いてる人はとりあえずこれやっとけ〜 - Qiita

    はじめに Pythonはコードが汚くなりがち(個人的にそう思う) そんなPythonくんを快適に書くための設定を紹介します。 拡張機能編 ここでは Pythonを書きやすくするため の拡張機能を紹介していきます。 1. Error Lens before 「コード書いたけど、なんか波線出てるよ💦」 記述に問題があった場合、デフォルトでは波線が表示されるだけ。。。 after Error Lensくんを入れることによって 波線だけでなくエディタに直接表示される。 はい、有能〜 2. indent-rainbow before Pythonくんは インデントでスコープを認識している。 for の f から下に線が伸びてるけど、ちょっと見にくいなぁ after 色が付いてちょっと見やすくなった! 3. Trailing Space before 一見、普通に見えるコード after 末尾にある

    VSCodeでPython書いてる人はとりあえずこれやっとけ〜 - Qiita
    ockeghem
    ockeghem 2023/10/09
    初心者向けのVSCodeの記事には是非デバッガの設定も載せて欲しい。Udemyの動画とかでも意外にprintデバッグしていたりするけど、統合開発環境と言ったらデバッガでしょう
  • パスワードがペッパー付きハッシュ値で保存されているサイトのSQLインジェクションによる認証回避の練習問題解答 - Qiita

    この記事は、以下の問題の想定正解です。まだ問題を読んでいない方は、先に問題を読んでください。 ペッパー(pepper)というのは、ハッシュ計算前のパスワードに付与する秘密かつ固定のソルトのことです。ペッパーの機密性が保たれている限り、ハッシュ値からパスワードを復元することも、パスワードのハッシュ値(アプリ側で受付られるもの)を計算することもできません。 また、この問題の先行問題の知識も必要ですので以下の記事(および問題)も読んでおいたほうがよいでしょう。 さて、このペッパー付きの問題も多くの方に記事を読んで頂き、また解答もいくつかいただきましてありがとうございます。 出題時の以下条件を満たす想定解答を2種類(細かく分けると3種類)紹介します。 できればブラックボックス(つまりソースコードやテーブル定義を見ない)で解く ペッパーは覗き見してはいけない sqlmap等のツールは使っても良い s

    パスワードがペッパー付きハッシュ値で保存されているサイトのSQLインジェクションによる認証回避の練習問題解答 - Qiita
    ockeghem
    ockeghem 2023/09/26
    パスワードがペッパー付きハッシュ値で保護されているサイトに対するSQLインジェクションでの認証回避問題、解答編です
  • パスワードがペッパー付きハッシュ値で保存されているサイトのSQLインジェクションによる認証回避の練習問題 - Qiita

    この記事は「パスワードがハッシュ値で保存されているサイトのSQLインジェクションによる認証回避の練習問題 - Qiita」の続編です。 前回までのあらすじ SQLインジェクションによる影響として、認証回避の例がよく紹介されます。よくある「'OR'a'='a」を入力するパターンはよく見かけるところですが、パスワードがハッシュ値で保存されているケースについても認証回避が可能なケースがあることを示しました(参考:解答編)。 パスワードがペッパー付きハッシュ値で保存されているとどうなる? 今どきはパスワードはソルト付きハッシュ値で保存することが常識になっていますが、加えて「ペッパー(pepper)」というものを付加した方がよいという流れになってきています。ソルトがユーザー毎に異なる文字列であるためにハッシュ値とセットで保存するのに対して、ペッパーは固定値であるもののデータベースとは別の安全な場所に

    パスワードがペッパー付きハッシュ値で保存されているサイトのSQLインジェクションによる認証回避の練習問題 - Qiita
    ockeghem
    ockeghem 2023/09/20
    SQLインジェクションによる認証回避練習問題の続編です。今回はペッパーが使われているパターンです
  • パスワードがハッシュ値で保存されているサイトのSQLインジェクションによる認証回避の練習問題解答 - Qiita

    この記事は、以下の問題の想定正解です。まだ問題を読んでいない方は、先に問題を読んでください。 まず、多くの方に記事を読んで頂きありがとうございます。解答もいくつかいただきましたが、その中で、以下のhm323232さんの解答は非常に優れたもので、これに付け加えることはほとんどありません。 しかし、気を取り直して、解答を書きたいと思います。 まず、ログイン処理の中核部分は以下に引用した箇所です。 $sql = "SELECT * FROM users WHERE userid = '$userid'"; $stmt = $pdo->query($sql); $user = $stmt->fetch(); if ($user && password_verify($password, $user['password'])) { echo "ログイン成功:" . htmlspecialchars(

    パスワードがハッシュ値で保存されているサイトのSQLインジェクションによる認証回避の練習問題解答 - Qiita
    ockeghem
    ockeghem 2023/09/20
    解答編を書きました
  • パスワードがハッシュ値で保存されているサイトのSQLインジェクションによる認証回避の練習問題 - Qiita

    SQLインジェクションによる認証回避 SQLインジェクションによる影響として、情報が漏洩するとか、データが勝手に更新されてしまうなどとともに、認証回避の例がよく紹介されます(私のでも取り上げています)。 典型的な例は下記のとおりです。 // $id と $password は外部からの入力 $sql = "SELECT * FROM users WHERE id='$id' AND password='$password'";

    パスワードがハッシュ値で保存されているサイトのSQLインジェクションによる認証回避の練習問題 - Qiita
    ockeghem
    ockeghem 2023/09/17
    SQLインジェクションによる認証回避は今更という感じですが、パスワードをハッシュ値で保存している場合の練習問題を作りました。Docker環境で試すことができます。
  • node-jsonwebtokenで学ぶJWTのalg=none攻撃 - Qiita

    JWTの検証プログラムに対する有名な攻撃手法にalg=none攻撃があります。JWTのalgクレーム(署名アルゴリズム)としてnone(署名なし)を指定することにより、署名を回避して、JWTのクレームを改ざんする手法ですが、手法の解説は多いもの、脆弱なスクリプトのサンプルが少ないような気がしています。そこで、node.js用の著名なJWTライブラリであるjsonwebtokenを使った簡単なサンプルにより、alg=none攻撃の解説を試みます。 なお、jsonwebtokenの最新版では今回紹介した攻撃方法は対策されているため、以下のサンプルでは古いjsonwebtokenを使っています。 alg=none攻撃とは よく知られているように、JWTは以下のように3つのパートからなり、それぞれのパートはBase64URLエンコードされています。ヘッダとペイロードはエンコード前はJSON形式です

    node-jsonwebtokenで学ぶJWTのalg=none攻撃 - Qiita
    ockeghem
    ockeghem 2023/09/08
    JWTのalg=none攻撃について、現実的なPoCとjsonwebtokenの対応状況について説明します
  • 【W3Techs】2023年8月にWebで最も使われている技術はjQuery・Bootstrap・PHP・WordPress - Qiita

    【W3Techs】2023年8月にWebで最も使われている技術はjQuery・BootstrapPHPWordPressPHPJavaScriptランキングW3TechsQ-Success コンサル会社Q-Successは、World Wide Web Technology Surveysという分析サービスを提供しています。 なんかいかにもW3Cとかと関係ありそうな名前ですが、特に関係はないみたいです。 W3Techsでは、Webサイトを収集し、それらがどのような技術で作られているかといった調査結果を無料で分析・公開してくれています。 こんなに公開していて生計はどうやって立てているのかというと、過去の履歴や細かいレポートなどを有料で売っているみたいです。 6450ページのPDFとか細かすぎて逆に使いこなせそうにもなさそうですが、興味のある方は手を出してみてはどうでしょうか。 データを覗

    【W3Techs】2023年8月にWebで最も使われている技術はjQuery・Bootstrap・PHP・WordPress - Qiita
    ockeghem
    ockeghem 2023/09/06
    まぁそんなものです
  • ソルト付きハッシュのソルトはどこに保存するのが一般的か - Qiita

    pictBLandとpictSQUAREに対する不正アクセスがあり、パスワードがソルトなしのMD5ハッシュで保存されていたことが話題になっています。 2023年8月16日に外部のフォーラムにpictSQUAREより窃取した情報と主張するデータ販売の取引を持ち掛ける投稿が行われた(中略)パスワードはMD5によるハッシュ化は行われているもののソルト付与は行われていなかったため、単純なパスワードが使用されていた29万4512件は元の文字列が判明していると投稿。(それ以外の26万8172件はまだMD5ハッシュ化されたままと説明。) 不正アクセスによるpictBLand、pictSQUAREの情報流出の可能性についてまとめてみた - piyolog より引用 これに関連してMD5ハッシュやソルトに関するツイート(post)を観察したところ、どうもソルトの理解が間違っている方が多いような気がしました。

    ソルト付きハッシュのソルトはどこに保存するのが一般的か - Qiita
    ockeghem
    ockeghem 2023/08/17
    Twitterにて出題した試験(クイズ)の想定正解と解説を書きました
  • 「なんで、for文ってforなの?」って、みんな思ったはず。 - Qiita

    words = ['Japanese', 'English', 'French'] for w in words: print (w) # 結果 Japanese English French 同じ処理を繰り返すので「ループ処理」とも言われます。ではなぜloopじゃなくて、forなのか?と思いますよね。おれもそう思い、3年くらい経過していました。 ちなみに、別でwhile文もループ処理になります。 ちなみに、使い分けとしては、 for文: 繰り返し回数を指定したい処理 while文: とにかく条件ごとに値を処理 という使い分けができそうです。 題:for文は如何にしてforなのか。 そろそろ題に入りましょう。 なぜ、for文はforでループ処理なのか? 調べてみました。 そもそも、ループ処理の種類の表し方は? ループ処理では、whileやforがあることはご存知の通りかもしれませんが、

    「なんで、for文ってforなの?」って、みんな思ったはず。 - Qiita
    ockeghem
    ockeghem 2023/08/13
  • ソフトウェアはなぜバージョンアップしなければならないのか - Qiita

    はじめに 社内インフラの運用担当者にとってソフトウェアのバージョンアップは地味な割に大変な業務です。 特に社内のオンプレサーバで動いているようなソフトウェアの場合、バージョンアップに伴う諸々の調整をそのソフトウェアを利用している各部署と行う必要があります。 そんなときに「今は忙しいからバージョンアップを先送りしてほしい」「このバージョンはスキップしてもよいのでは?」なんて声が各部署から聞こえてきます。バージョンアップの価値を各部署に理解してもらうのは大変です。 この文章はそんな時になぜバージョンアップしなければならないのかを上司や各部署のマネージャに伝えるために書きます。 ソフトウェアの有効期限は2-5年 まず、第一に、ソフトウェアというものは無限に使えるわけではなく、一定の有効期限があり、それを過ぎると徐々に動かなくなってきます。俗にいう「何もしてないのに動かなくなった問題」です。 なぜ

    ソフトウェアはなぜバージョンアップしなければならないのか - Qiita
    ockeghem
    ockeghem 2023/07/29
    これは良い記事
  • SIerでのGitHub Copilotの業務活用に向けた検討ポイントをまとめてみた - Qiita

    OpenAIが開発したコード生成AIの「Codex」や、その技術を活用した「GitHub Copilot」が注目を集めています。Qiitaや技術ブログではCopilotを試してみた系の記事も多く公開されており、好意的な反応と共に紹介がされているように感じます。 これらのコード生成AIやツールを開発業務で活用しようと考えた際、どのような効果が見込めるのか、プログラマの心理やパフォーマンスにどのような影響を及ぼすのかが気になったので、CodexやCopilotの実装能力やプログラマに与える影響を調査した研究事例などを調べました。 この記事では、調べた結果を基に、SIerにおける開発業務でCopilotやCodexといったソースコードが生成できるツールやAIを活用するにあたって留意するべきポイントなどを、私の感想を交えながらご紹介します。 記事で紹介する範囲 記事では、SIerがCopilo

    SIerでのGitHub Copilotの業務活用に向けた検討ポイントをまとめてみた - Qiita
    ockeghem
    ockeghem 2023/06/26
    参考文献が多く参照されており内容も興味深い
  • 後輩に対して [君付け]→[呼び捨て+命令口調]→[さん付け+敬語] に変えて学んだこと - Qiita

    はじめに 同じチームの後輩に対して、名前を呼び捨てにするか君付けするか、敬語を使うか使わないか、様々な考え方があると思います。 私の場合は、呼び方や敬語の有無を変えた経験があり、そこから学んだことを紹介します。 最初は君付けだったが 私は最初、同じチームの後輩を「小島くん」のように君付けで呼んでいました。 当時の私は、社会人という意識が低く、会社の後輩に対して学生時代の部活の後輩と同じ感覚で話しかけていました。 しかし、ある時、転機がありました。 上司からすると、私は後輩に甘くて厳しさが足りないところがあったのでしょう。 後輩を呼び捨てするように助言されました。 (※10年前の話で、今ほどリーダーシップの理論も広まっていなかった頃の話です) 学生時代からずっと後輩のことを呼び捨てしたことのなかった自分にとって、それは物凄く抵抗がありました。 しかし、私は後輩に対してもっと厳しく指導すること

    後輩に対して [君付け]→[呼び捨て+命令口調]→[さん付け+敬語] に変えて学んだこと - Qiita
    ockeghem
    ockeghem 2023/06/15
    僕は一貫して社内では相手の立場に関係なく「名字+さん付け+丁寧語」ですね。尊敬語や謙譲語は使わない、極めてフラットな日本語。形だけになると良くないので敬意を忘れないように注意している