タグ

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

  • 【PHP8.1】PHP8.1の新機能 - Qiita

    PHP8.2 / PHP8.1 / PHP8.0 / PHP7.4 2021/11/26にリリースされました 2021/07/20、PHP8.1がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2021/11/25にPHP8.1.0がリリースされる予定です。 というわけでPHP8.1で実装されるRFCを見てみましょう。 RFC Fibers 賛成50反対14で受理。 Fiberです。 PHPで非同期コードを書けるようになります。 $fiber = new Fiber(function (): void { $value = Fiber::suspend('fiber'); echo "レジュームした。$value: ", $value, "\n"; }); $value = $fiber

    【PHP8.1】PHP8.1の新機能 - Qiita
    ockeghem
    ockeghem 2021/08/04
    『PHPは7以降、型関連の実装・機能追加が相次いで行われてきました。今ではもはや、下手な静的型付け言語よりずっと厳格な型運用を行うことすら可能になっています』
  • なぜかエンジニアをイラっとさせてしまう人の質問 - Qiita

    はじめに 先日、新入社員の方から次のような相談を受けました。 「エンジニアの方に質問をすると、いつもイライラされてしまって辛いです」 ・・・・・・・・・ 確かに、エンジニアに限らず、質問をすることは非常に難しい… 質問の仕方を間違えたために相手を怒らせてしまった、なんてこともしばしばあることでしょう。 彼らは「教えるプロ」ではなく、ただの技術者です。 そのため、問題の解決には、質問力(コミュニケーション能力)が欠かせません。 そこで、新入社員の子には質問の仕方を教えようと思ったのですが… 僕「質問の内容・構成は悪くないぞ」 ※ここでは、あえて「良い質問」、「悪い質問」の違いには触れないようにします。 ※その手の話題はみんなすでに飽き飽きしているからです。 そう、質問の仕方は問題なかったのです。 しかし… 要所に気になる文言がいくつかありました。 -- 記事ではうちの新入社員に限らず、プロ

    なぜかエンジニアをイラっとさせてしまう人の質問 - Qiita
    ockeghem
    ockeghem 2021/07/15
    『初心者なので分かりやすく説明してください』も微妙にイラッとするし、そのイラッとする自分の気持といつも戦っているw
  • Re: CookieのPath属性は本当に安全性に寄与しないのか - Qiita

    以下の記事を読みました。 CookieのPath属性は当に安全性に寄与しないのか 結論として以下となっています。 結論。Path属性は特殊な状況下ではある程度安全性に寄与する Path属性は、これを設定してCookieを発行するあるパス(以下「自身のパス」)にサーバサイドのプログラムを書き換えられるような脆弱性がなく、同一オリジン内の別のパスにそのような脆弱性がある場合に、そのパスへのCookieの漏洩することを防ぐことができます。 中略 つまり、「体系的に学ぶ 安全なWebアプリケーションの作り方」の記述はおそらく間違えです。 とはいえ私はセキュリティは専門ではなく、特に攻撃側には疎く、この記事に書いた以上の調査・実験もしていないため、この結論も確実とは言い切れません。詳しい情報をお持ちの方がいたら、ぜひご教示ください。 記事では、iframeなどを用いた攻撃について言及されていて、そ

    Re: CookieのPath属性は本当に安全性に寄与しないのか - Qiita
    ockeghem
    ockeghem 2021/07/08
    『つまり、「体系的に学ぶ 安全なWebアプリケーションの作り方」の記述はおそらく間違えです』という記事を見かけたので検証してみました
  • イスラエル8200部隊出身のガチプロハッカーに、一流のハッカーになる方法について聞いてみた。 - Qiita

    私がインターンで勤めている企業のハッカーは、イスラエル国防軍におけるサイバー攻撃・防御の超精鋭部隊、 8200部隊出身のガチプロハッカーです。8200部隊はアメリカのNSAと並んで世界最高のハッキング技術を持つと言われています。高校卒業後に兵役の義務があるイスラエルで、なんと彼は大学の学位を取り終えて、入隊したそう。 そんなスペシャルなハッカーに、東京大学で(一応)コンピュータ関係を専攻する私が、「一流のハッカーになる方法」について聞いてみたら面白かったので、人の許可を得てその邦訳を記事にしてみました。 イスラエルのハッカーエコシステム イスラエルの8200部隊について教えてください。 8200部隊はイスラエル軍におけるインテリジェンスユニットです。詳しい内容は秘密事項でお伝えすることはできませんので、Wikipediaなどを見ていただくのが早いと思います(笑)。主にサイバーセキュリティ

    イスラエル8200部隊出身のガチプロハッカーに、一流のハッカーになる方法について聞いてみた。 - Qiita
    ockeghem
    ockeghem 2021/06/09
    ここ好き>『1つ目は問題解決能力です。論理的に、数学的に問題を解くような力が非常に重要です。具体的には、より多くのプログラミングの問題や数学の問題を解いていくといいと思います』
  • 非エンジニアのウェブ・セキュリティ基礎試験(徳丸試験)受験記 - Qiita

    2021年5月30日、ウェブ・セキュリティ基礎試験(通称:徳丸基礎試験)に合格しました。 受験の動機や勉強方法を記録しておきたいと思います。 これから当試験を受験する方の参考になれば幸いです。 プロフィール ニックネーム:とみー 職業:IT営業(代理店営業) 年齢:27歳 保有資格: 情報セキュリティマネジメント CompTIA CySA+ 開発経験 独学 掲示板サイトが作れる程度 受験のきっかけ きっかけその1:webアプリケーション脆弱性の理解度向上のため きっかけその2:CTFのWeb問対策のため きっかけその3:エンジニアとのコミュニケーションのため 試験を受ける過程でWebアプリケーション脆弱性の理解を深められると思いましたので資格を取得することに決めました。 結果的に知識の整理と理解に役に立ったと思います。 きっかけその2とその3についてはそのままの意図となります。 Webア

    非エンジニアのウェブ・セキュリティ基礎試験(徳丸試験)受験記 - Qiita
    ockeghem
    ockeghem 2021/05/30
    合格おめでとうございます。他の受験者の参考になると思います。
  • chmod -R 777 /usr を実行したCentOS7で、一般ユーザがroot権限を得られることを確認する - Qiita

    chmod -R 777 /usr を実行したCentOS7で、一般ユーザがroot権限を得られることを確認するLinuxSecurityrootpermission Teratailで、suコマンドでrootログインできないという質問があり、てっきり/etc/pam.d/suまわりの設定かと思いきや、そうではなく、自己解決で説明された原因に一同驚愕ということがありました。 /usr/share/nginx/html に権限を追加したくて、横着して chmod 777 -R /usr とコマンド実行した記憶があります。 CentOS7、suコマンドでrootにログインできない、パスワードは絶対あっているのになぜ? /usr 以下のパーミッションをすべて777に設定したら、逆に動くべきものが動かなくなる例なのですが、これをやるとセキュリティ上問題であることは言うまでもありません。究極的には、

    chmod -R 777 /usr を実行したCentOS7で、一般ユーザがroot権限を得られることを確認する - Qiita
    ockeghem
    ockeghem 2021/04/08
    以前話題になった /usr 以下がパーミッション777の環境でroot権限を実際にとってみました
  • レンタルサーバー運営会社に不正利用を通報したときの窓口と、各社の対応をまとめた。 - Qiita

    動機 おそらくCMSがクラッキングされて、私のブログの文章を断片的にコピーしたサイトがフィッシングサイトへの誘導に使用されているのを見つけたので、コンテンツをホスティングしている会社に片っ端から不正利用を報告しました。各社の窓口と対応スピードをまとめておけば、今後の自分の役に立ちそうだったのでまとめておきます。 なお、他人のブログをコピーしたものをつなぎ合わせたり、キーワードがひたすら埋め込まれたページを追加してフィッシングサイト等に誘導する手口はジブリッシュハックと呼ぶそうです。 意味不明な内容によるハッキングを解決する  |  Web Fundamentals  |  Google Developers 被害を受けるとこういう感じのページが量産されます。 今回の報告はすべてジブリッシュハックに対するものです。 なお、今回の報告対象は脆弱性ではないのでIPAには報告していませんが、脆弱性

    レンタルサーバー運営会社に不正利用を通報したときの窓口と、各社の対応をまとめた。 - Qiita
    ockeghem
    ockeghem 2021/03/01
    各社意外と対応してくれるのですね。さくらは頑張れ
  • わて「なにっ!?韻を踏むだけで保守性があがるやと!?」 - Qiita

    無職やめ太郎さんの許可はこれから取ります→相互パクリへ ある日の会社にて わて「バイトくん、何してるん?シャボン玉楽しいで?」 バイトくん「何いってるんですか、仕事中ですよ。大概にしてくださいね」 わて「げほげほっ、このシャボン玉液ちょっと美味しい」 バイトくん「・・・」 わて「で、何してるん?」 バイトくん「あー、関数を薄くラッパーして、保守性を高めてるんですよ」 わて「ラッパー?わても好きやで。昔はフロアを沸かしていたもんや。フロアっていうかほんとは風呂なんやけどな」 バイトくん「・・・」 わて「にらまんといてや・・・」 薄くラッパーするってなんなん? バイトくん「例えばここに Http Request をするライブラリがあるんですね」 const sugoiHttpLibrary = new SugoiHttpLibrary(); const url = 'https://qiita

    わて「なにっ!?韻を踏むだけで保守性があがるやと!?」 - Qiita
    ockeghem
    ockeghem 2020/10/26
    タイトルに釣られて読んでしまった。ラッパーの話かと思いきやラッパーの話だった。
  • 「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita

    はじめに 先日ツイッターで見かけた呟き pic.twitter.com/33Yk02hu1U — TOMO (@tomozh) October 14, 2020 そういうこともあるのか的な反応もあるようなので具体例を挙げてみることにする。 例1 所謂FizzBuzz問題。 #include <stdio.h> void fizzbuzz(int n) { int next; int i = 1; do { printf(i % 15 ? i % 5 ? i % 3 ? "%d\n" : "Fizz\n" : "Buzz\n" : "FizzBuzz\n", i); if (i++ >= n) next = 0; } while (next); } int main(void) { printf((char[]){""}); // この位置にprintfが無いとなぜか動かない fizzbuz

    「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
    ockeghem
    ockeghem 2020/10/20
    printfデバッグという言葉はprintfでバグの発生箇所を見つける意味で使われるが、こちらはprintfを挿入することでバグをつぶす(つぶしてない)ので本当のpritnfデバッグ
  • なぜ我々は頑なにforを避けるのか - Qiita

    動機 前回の記事を投稿したことを某SNSで通知したところ、そのSNSでこんなコメントをいただいた。転記する許可を取ったわけでは無いので私なりに要約させていただくと、 なぜそんなトリッキーな書き方をしてまでforを使うのを避けるのか そんな書き方をして可読性を下げるくらいなら素直にforを使う方が良い ということだと理解している。 なるほど、一理ありそうだ。しかし一方で、前回貼ったStackOverflowのQ&Aはなかなかの人気記事(質問に1243ポイント、回答に最大で1559ポイント)なので「多少トリッキーなことをしてでもforを書きたくない!!」という意見をもつプログラマも一定以上いるのだろう。当然私もその1人だ。 ということで、この記事で「なぜそこまで意固地になってまでforを書きたくないのか」を説明することにする。 尚、今回は前回の記事つながりで言語はJavaScriptを使うが、

    なぜ我々は頑なにforを避けるのか - Qiita
    ockeghem
    ockeghem 2020/09/30
  • sprintf()でSQL文を生成する際、%は%でエスケープできる - Qiita

    何を言っているのかわからねーと思うが、ありのままを話すぜ 2020/09/12 追記 コメントにてSQLインジェクションの原因となる脆弱性をご指摘いただきました。 記事はsprinf()でSQLクエリを作成する事を推奨するものではないとご理解をお願いします。 @tadsan様 ありがとうございます。 はじめに 現在私はPHP+MySQLでフルスクラッチ開発をしている会社で働いているのですが、 まだ、入社して1ヶ月ほどなので既存のコードを読むことがほとんどです。 弊社ではphpファイルの中でSQL文を生成する際に sprintf()を使用して、フォーマットを整えるようにしています。 (これがスタンダードなのかは不明) その中で、いまいちよくわからない記述を調べていくうちに 興味深いルールに出会いましたので、忘れないようQiita残しておきます。 sprintf()でSQLの曖昧検索クエリを

    sprintf()でSQL文を生成する際、%は%でエスケープできる - Qiita
    ockeghem
    ockeghem 2020/09/13
    『弊社ではphpファイルの中でSQL文を生成する際にsprintf()を使用して、フォーマットを整えるようにしています』って怖すぎでしょう。SQLインジェクションについては他の方が指摘ずみ
  • JavaScript学習ロードマップ - Qiita

    JavaScript苦手・・という状況からJavaScript好きになれるロードマップ(多分) 全編ほぼ動画なので、とっても見やすい。挫折しづらい。 全体的な流れとしては、動画見る ▶︎ コードを書いて学習の流れです 個人的に好きなエンジニア系Youtuberのお二人の動画がメインになります Yahoo!出身のエンジニア しまぶーのIT大学さん Web万屋エンジニアチャンネルさん LEVEL ☆ JavaScriptってなに? そもそもJavaScriptって何?フロントエンドって何してるの?ってレベルを解消 フロントエンド基礎編 / 約40分 LEVEL ★ JavaScript入門編 JavaScriptをマスターするならHTMLを知っておかないかん by 弊社マネージャー HTMLの基礎から、JavaScriptの全体像を学習できます。 HTML入門編 / 約43分 JavaScri

    JavaScript学習ロードマップ - Qiita
    ockeghem
    ockeghem 2020/09/03
    ツッコむのもヤボな感じだけど、ロードマップのどこかでセキュリティについても学んでほしい
  • 徳丸試験(ウェブ・セキュリティ基礎試験)の試験情報と勉強方法 - Qiita

    ウェブ・セキュリティ基礎試験を受験してきました。 とてもいい資格なので少しでも合格者が増えるように勉強方法含め情報共有します。 ウェブ・セキュリティ基礎試験とは 徳丸の愛称で有名な体系的に学ぶ 安全なWebアプリケーションの作り方の理解度を問う試験です。 問題作成をご担当されている徳丸先生にちなんで徳丸試験と呼ばれています。 Webアプリケーションを開発するにあたって、知っておくべきセキュリティや脆弱性の知識を身に付けることができます。 「徳丸読まずしてWebアプリケーションを作るなかれ」と言うぐらい必須の知識です。(私が勝手に言ってるだけです。) 詳細は以下をご覧ください。 https://www.phpexam.jp/tokumarubasic/ 試験の基情報 試験の形式は以下の通りです。(執筆時点)

    徳丸試験(ウェブ・セキュリティ基礎試験)の試験情報と勉強方法 - Qiita
    ockeghem
    ockeghem 2020/08/17
    ありがとうございます。この勉強法はよいと思いますね
  • やはりpythonのsubprocessでcatするのはまちがっている。 - Qiita

    やっはろー。 要約 pythonでsubprocess.run('cat path', shell=True)なんて書いている人は、僕と一緒に悔い改めて明日からopen()を使いましょう。 subprocessとは お詳しい方は読み飛ばしてください。 subprocessとはLinuxのOSコマンドをpython上から実行するモジュールです。 Python上でOSコマンドを実行するにはos関数やsystem関数などもありますが現在はsubprocessが推奨されているそうです。 import subprocess list = subprocess.run('ls') #hoge.py hoge.sh hoge.wav print(list) #CompletedProcess(args='ls', returncode=0) #引数にコマンドを渡してあげると実行結果(ステータス)が返って

    やはりpythonのsubprocessでcatするのはまちがっている。 - Qiita
    ockeghem
    ockeghem 2020/08/16
    オフトピだけど、shell=True が指定されていことが気になる。記事のケースだと問題ないけど、OSコマンドインジェクションになりやすい。
  • ハッカーがどうやってハッキングしているのか興味をもったので調べてみました。 - Qiita

    ockeghem
    ockeghem 2020/08/14
  • Auth TokenをlocalStorageに入れようが、cookieに入れようがどっちもXSS危険性には無防備(同ドメイン内なら ...) - Qiita

    Auth TokenをlocalStorageに入れようが、cookieに入れようがどっちもXSS危険性には無防備(同ドメイン内なら ...)JavaScriptcookieJWTxsstoken tokenを保存する場所 localStorage cookie cookie (http only) メモリ内 (変数) よく言われるのが JWT tokenをlocalStorageに入れるべきではない ということ。 理由としてはJavascriptで簡単に読めてしまうので、XSSがあった場合意図しないスクリプトを動かされてしまい、結果としてtokenが盗まれるというもの。 対応策として cookie (http only) を色んな所で推奨してる。 https://techracho.bpsinc.jp/hachi8833/2019_10_09/80851 http://cryto.net

    Auth TokenをlocalStorageに入れようが、cookieに入れようがどっちもXSS危険性には無防備(同ドメイン内なら ...) - Qiita
    ockeghem
    ockeghem 2020/07/19
    元動画が絶賛コメントに満ちているのを見て、ウェブが分かっていない人が多いのは洋の東西を問わないのだなとあらためて思った
  • Chrome 80が密かに呼び寄せる地獄 ~ SameSite属性のデフォルト変更を調べてみた - Qiita

    Chrome 79以下や他ブラウザのデフォルト値。 Chrome 80からこの値を設定する場合、Secure属性も必須となる。 Aサイトに対し、Bサイトからどのようなリクエストがあっても、発行したサイトでCookieヘッダーに含める (Cookieを使用する) 図にすると以下のようになります。 Strict 外部サイトからのアクセスではCookieを送らない。 Lax 外部サイトからのアクセスはGETリクエストのときだけCookieを送る。 None 従来通りの動き。 【追記】なおChrome 80以降でSecure属性を付けずSameSite=Noneを指定した場合、set-cookie自体が無効になります。 セキュリティ上の効果 CSRF対策になります。 CSRF (クロスサイト・リクエスト・フォージェリ) とは、 WEBサイトがユーザー人の意図した動作であることを検証していないため

    Chrome 80が密かに呼び寄せる地獄 ~ SameSite属性のデフォルト変更を調べてみた - Qiita
    ockeghem
    ockeghem 2020/07/08
    中途半端に古いブラウザに対応する手間を考えるとこれは確かに地獄だ
  • 【Hack the Box write-up】Celestial - Qiita

    Help us understand the problem. What is going on with this article?

    【Hack the Box write-up】Celestial - Qiita
    ockeghem
    ockeghem 2020/06/09
    安全でないデシリアライゼーション。私の動画にも言及いただきありがとうございます
  • paiza.ioでコンパイラを作る - Qiita

    TL;DR C++でBrainf**kのx64のELFコンパイラを作った. ついでに下記3つのBrainfuckコンパイラも作った. x86のELFコンパイラ x64のexeコンパイラ x86のexeコンパイラ GitHubにすべてまとめて置いてある. 元ネタ ヤッター!paiza.ioでコンパイラできたよー!\(^o^)/ 元ネタの元ネタ この記事 前置き 元ネタの記事ではRustを使用して,Brainf**kからRustに変換し,それをrustcに通すというコンパイラを作っていました. なので,Brainf**kからx64のELFを直接吐くコンパイラを作ってみました. ELFファイルを作るには,体の機械語の前後に適当なヘッダやフッタをつける必要があり,ちょっと面倒なのですが,C言語またはC++においては <elf.h> というヘッダ等の構造体が定義されているヘッダファイルが利用できる

    paiza.ioでコンパイラを作る - Qiita
    ockeghem
    ockeghem 2020/06/01
    『元ネタの記事ではRustを使用して,Brainf**kからRustに変換し,それをrustcに通すというコンパイラを作っていました.なので,Brainf**kからx64のELFを直接吐くコンパイラを作ってみました』
  • ヤッター!paiza.ioでコンパイラできたよー!\(^o^)/ - Qiita

    これは何? 先日、こんな記事を見ました1。 ほう? コンパイラの自作方法を解説しているなんて、なかなか意欲的な記事じゃないか。どれどれ。 ( ゚д゚) ポカーン・・・ (つд⊂)ゴシゴシ (;゚д゚) ・・・ (つд⊂)ゴシゴシゴシ _, ._ (;゚ Д゚) …!? paiza.io はコンパイラ自作支援システムだ。いいね? アッハイ 作ったやつ よくある Brainf*ck コンパイラ(手抜き)です。 技術解説(言い訳タイム) 最初は ELF64 の実行可能ファイルを直接吐き出すコンパイラ作ろうかなって思ったんですよ。でも ELF フォーマット調べてたらこれめんどくせーなってなりました。 Rustなら elf crate とかあるんですが、 paiza.io で外部 crate は流石に使えないし。 という訳で、「Brainf*ck のソースコードから Rust のソースコー

    ヤッター!paiza.ioでコンパイラできたよー!\(^o^)/ - Qiita
    ockeghem
    ockeghem 2020/05/29
    ネタとはいえ、もうちょっと頑張って欲しかった