タグ

javaに関するn314のブックマーク (80)

  • Log4jで話題になったWAFの回避/難読化とは何か

    はじめに 2021年12月に発見されたLog4jCVE-2021-44228は、稀に見るレベル、まさに超弩級の脆弱性となっています。今回、私はTwitterを主な足がかりとして情報収集を行いましたが、(英語・日語どちらにおいても)かなりWAFそのものが話題になっていることに驚きました。ある人は「WAFが早速対応してくれたから安心だ!」と叫び、別の人は「WAFを回避できる難読化の方法が見つかった。WAFは役に立たない!」と主張する。さらにはGitHubに「WAFを回避できるペイロード(攻撃文字列)一覧」がアップロードされ、それについて「Scutumではこのパターンも止まりますか?」と問い合わせが来るなど、かなりWAFでの防御とその回避方法について注目が集まりました。 実はWAFにおいては、「回避(EvasionあるいはBypass)」との戦いは永遠のテーマです。これは今回Log4jの件で

    Log4jで話題になったWAFの回避/難読化とは何か
    n314
    n314 2021/12/17
    色んな言語のパーサ実装をそれぞれそのまま使えれば楽そうだけど、それだとめっちゃ遅くなったりするか。処理速度もかなり重要だよね。
  • Java IDEの使いやすさはIDEがどのようにJavaを知ってるかで決まりがち - きしだのHatena

    Java IDEにもいろいろあるけど、それぞれの特性としてIDEがどれだけJavaを知っているかということで決まるということをTwitterに書いたので、ちょっと具体的に書いてみます。 IDEの使いやすさについて、そのIDEがどれだけちゃんと言語を知っているか依存するんだけど、IntelliJ IDEAが一番Java言語を知っていて、NetBeansはJavaのエコシステムを知っていて、EclipseはJavaビジネスを知っている・・・ VS Codeはまとめサイトで見たレベルでJavaを知ってる感— きしだൠ(K8S(Kishidades)) (@kis) 2020年10月30日 ちなみに、全体としてNetBeans推しです。 使い分けとしてはこんなこと書いてます。 Java IDEの選び方 機能いらんけど使いやすくて安定したのがいい→IntelliJ IDEA CE 機能多いのがいいけ

    Java IDEの使いやすさはIDEがどのようにJavaを知ってるかで決まりがち - きしだのHatena
    n314
    n314 2020/10/31
  • Java 14新機能まとめ - Qiita

    Java 14が2020/3/17にリリースされました。 Java SE 14 Platform JSR 389 ダウンロード OpenJDKサイトからダウンロードできます。 https://jdk.java.net/14/ MacLinuxでのインストールにはSDKMAN!をお勧めします Oracle OpenJDK以外に無償で商用利用できるディストリビューションとしては、次のようなものがあります。 AdoptOpenJDK Azul Zulu Community Liberica JDK LTSではないのでAmazon Correttoではリリースされないようです。 アップデートは4月に14.0.1が、7月に14.0.2がリリースされることになります。 Oracle JDKは開発用途には利用できますが、商用利用にはJava SE Subscriptionを購入する必要があります。 J

    Java 14新機能まとめ - Qiita
    n314
    n314 2020/02/14
    昔JavaやっててもJava経験者ですって言えないくらいに変わってるな。
  • Javaなら「この書き方がベスト」と信じて書ける - きしだなおきに聞く、Javaのこれまでとこれから - エンジニアHub|Webエンジニアのキャリアを考える!

    エンジニアHub > 記事一覧 > Javaなら「この書き方がベスト」と信じて書ける - きしだなおきに聞く、Javaのこれまでとこれから Javaなら「この書き方がベスト」と信じて書ける - きしだなおきに聞く、Javaのこれまでとこれから Javaは1995年に誕生し、数多くのコミュニティや企業の影響を色濃く受けてきました。では、黎明期から現代に至るまで、Javaはどのように進化し、生態系を変化させてきたのでしょうか。Javaのスペシャリストとして知られる、きしだなおきさんに聞きました。 1995年に誕生した、オブジェクト指向プログラミング言語・Java。この言語の歴史は、数多くのコミュニティや企業の影響を色濃く受けてきました。 例えば、OracleによるSun Microsystemsの買収後、Javaのリリースサイクルは大きく変化しました。また日においては、Javaカンファレンス

    Javaなら「この書き方がベスト」と信じて書ける - きしだなおきに聞く、Javaのこれまでとこれから - エンジニアHub|Webエンジニアのキャリアを考える!
    n314
    n314 2019/10/30
    20年近くPHP書いてるけど、自分の思うベストな書き方がコロコロ変わる。Seasar流行ってた時期だけJava書いてた。
  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT
    n314
    n314 2018/06/30
    サンプルファイル便利
  • Java11ではjavacせずにJavaファイルが実行できるようになる - きしだのHatena

    JDK11 ea18から、javacしないでもJavaファイルを実行できるようになりました。 あと、Windowsバイナリはzipファイルで提供されるようになっています。tarコマンドが提供されたとはいえ、エクスプローラーから解凍できるzipファイルになるのは ありがたい。 JDK 11 Early-Access Builds JEP330が取り込まれたことにより、ソースファイルがひとつのJavaプログラムは、javac不要でjavaコマンドで実行できるようになります。 JEP 330: Launch Single-File Source-Code Programs Windowsのコマンドプロンプトだと こんな感じ。 C:\Users\naoki\java>more Hello.java public class Main { public static void main(String

    Java11ではjavacせずにJavaファイルが実行できるようになる - きしだのHatena
    n314
    n314 2018/06/18
    perlとかpythonで書いていたスクリプトをjavaで書く時代が来る・・・?
  • 私からあなたへ 一人前のJavaエンジニアになるためのロードマップを送ろう - Qiita

    内容 以下記載のURLを参考にロードマップをJavaバージョンにしてみた。 初心者から立派なJava エンジニアになる方への学習の道しるべになれば。 また自分自身すべてできるわけではないので、できるようにするためのメモ書きとして。 (ただ以下をなんとなく理解するだけで2,3年以上かかった。。。) 参考 ※ 会社の同期から基文法についてレベル別記載のアドバイスをいただいたので修正(2018/4/9) 学習方法 1.Hello World どのプログラミング言語でもそうですが、まずは動かし方を学びましょう。 ゲシュタルト崩壊するくらいHello Worldは書きましょう。 最初のうちはstatic void mainの意味も分からなくて大丈夫です。徐々に理解できるはずです。 2.基を学ぶ 以下のサイトや書籍を使用してプログラミングの基礎を知りましょう。 文法の書き方やメソッドの使い方、アク

    私からあなたへ 一人前のJavaエンジニアになるためのロードマップを送ろう - Qiita
    n314
    n314 2018/04/10
    スクリプト言語から来ると、APサーバーの種類と構成が複雑すぎて詰まったので、どの構成がどういった用途に向いてるのかを知りたかった。
  • Java 10新機能まとめ - Qiita

    Java 10が出ますね。Java 9なんてなかった! しかしながら、どんな機能があるかよくわからないので、まとめてみます。 ここに並んでいるJEPを簡単に紹介する感じで。 http://openjdk.java.net/projects/jdk/10/ APIの追加など、JEP以外の変更はこちらにまとめました。 Java10のJEP以外の変更まとめ - Qiita すべての変更点はこちらにまとまってます。 109 New Features In JDK 10 - Azul Systems, Inc. OpenJDKのダウンロードはこちら JDK 10 GA Release Oracle JDKのダウンロードはこちら Java SE Development Kit 10- - Downloads 286: Local-Variable Type Inference おそらく、コードを書く上

    Java 10新機能まとめ - Qiita
    n314
    n314 2018/03/20
    コメントのやり取り、一箇所でしか使われていないコードを単に関数が長くインデントが深くなったという理由で分割するかどうか、みたいな話と似ている。
  • ヌーラボのアカウント基盤を Java 9 にマイグレーションして起きた問題と解決法 | 株式会社ヌーラボ(Nulab inc.)

    Java 9の起動パラメータ java.locale.providers に Java 8 と同じ優先度で国際化を行う指定をします。 java -Djava.locale.providers=COMPAT,SPI この設定で日付のフォーマットが Java 8 と同じように動作するようになり、自動テストが成功しました。 以上で 750 個のテストがすべて成功するようになりました。次はいよいよJava 9で既存のソースコードをコンパイルします。 Java 9でコンパイルして Java 9で動かす ヌーラボのアカウント基盤には Java のコンパイル対象が約 1,360 ファイルあります。目標は 1,360 のソースコードがJava 9 ですべてコンパイルできることです。 コンパイラの設定を Java 9に切り替える コンパイラを Java 9に切り替えます。Java 9のバージョン指定には注意

    ヌーラボのアカウント基盤を Java 9 にマイグレーションして起きた問題と解決法 | 株式会社ヌーラボ(Nulab inc.)
  • Struts2が危険である理由

    はじめに 2017年3月、Struts2にまたしても新たな脆弱性(S2-045、S2-046)が見つかり、複数のウェブサイトにおいて情報漏洩等の被害が発生しました。筆者は2014年4月(およそ3年前)に「例えば、Strutsを避ける」という記事を書きましたが、今読み返してみると「やや調査不足の状態で書いてしまったな」と感じる点もあります。今回、良いタイミングなのでもう一度Struts2のセキュリティについてざっとまとめてみたいと思います。 なぜJavaなのにリモートからの任意のコード実行(いわゆるRCE)が可能なのか Struts2はJavaアプリケーションであり、Java製のアプリケーションサーバ上で動作します。Javaはいわゆるコンパイル型の言語であるため、通常はランタイムにおいて任意のコードを実行することはできず、RCEは難しいはずです。 JavaのウェブアプリケーションでRCEが成

    Struts2が危険である理由
    n314
    n314 2017/03/27
    PHPerなのに「Strutsの脆弱性大丈夫?」と聞かれて何故か詳しくなってしまう悲しみ。
  • Awesome Java : 素晴しい Java フレームワーク・ライブラリ・ソフトウェアの数々 - Qiita

    元記事: Awesome Java Awesome List in Qiita Awesome Ruby Awesome JavaScript Awesome Node.js Awesome Python Awesome Go Awesome Selenium Awesome Appium Bean マッピング Bean マッピングを容易にするフレームワーク dOOv - 型安全なドメインモデルの検証とマッピングのための API を提供します. アノテーション, コード生成, および型安全 DSL を使用して, Bean の検証とマッピングを迅速かつ簡単にします. Dozer - アノテーション, API または XML 設定を使用して, あるオブジェクトから別のオブジェクトへデータをコピーするマッパー. JMapper - 高速コードマッピングのためにバイトコード操作を使用. アノテーシ

    Awesome Java : 素晴しい Java フレームワーク・ライブラリ・ソフトウェアの数々 - Qiita
    n314
    n314 2017/02/08
    くらくらする。
  • GitHub - EnterpriseQualityCoding/FizzBuzzEnterpriseEdition: FizzBuzz Enterprise Edition is a no-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes.

    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 - EnterpriseQualityCoding/FizzBuzzEnterpriseEdition: FizzBuzz Enterprise Edition is a no-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes.
    n314
    n314 2016/04/23
  • 作って理解するWebフレームワーク - きしだのHatena

    前回、簡単なDIコンテナを作ってみたので、次はこれを使ってWebフレームワークを作ってみたいと思います。 Webサーバーをつくる まず、WebフレームワークなのでHTTPサーバーが必要ですね。なので簡単なものを作ります。 とりあえずブラウザからリクエストを受け取ったら200 OKとHTMLを返すだけのサーバーです。 今回は、そこらのブラウザからアクセスできればいいや、ということで、RFCとかの仕様に準拠することは考えません。 public class Server { public static void main(String[] args) throws IOException { ServerSocket serverSoc = new ServerSocket(8989); for (;;) { Socket s = serverSoc.accept(); new Thread((

    作って理解するWebフレームワーク - きしだのHatena
    n314
    n314 2016/04/21
    さらっと書いてるけど、今はmap().filter().forEach()とか普通にやるんだな。/ これはJavaだから、下手に有り物のサーバー使うより自分で書いた方が分かりやすくなるのか。
  • Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。アプリケーション基盤チームの横田です。 Javaの謎のパフォーマンス劣化にまつわる調査をしていたのですが、1ヶ月の苦労の末に原因がわかりましたので、報告させていただきます! 公開後に頂いたはてなブックマークでのご指摘・社内でのタイポ・読みにくいなどの指摘を受けてたので、謹んで修正させいただきます。 修正した内容につきましては、記事の最後を参照してください。 忙しい人のためのまとめ jdk-7u4以降のjdk-7 *1 でJavaのパフォーマンスが劣化する謎の現象 CodeCacheの容量限界に近づくとJITコンパイラを停止してコンパイルしたコードを捨てる機能が原因だった 起動オプションで回避できるので、長期運用するときは -XX:-UseCodeCacheFlushing, -XX:ReservedCodeCacheSize=128m をつける 上のオプションを設定した時に、C

    Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ
    n314
    n314 2016/04/13
  • DIとAOPが面倒になったは良いけど、結局どれにするんだ? - makotanのブログ

    OSSとしては出尽くした気はするのでまとめてみた プロダクト DIコンテナ 通信部分 Annotation 特徴 Spring MVC Spring Servlet 独自Annotation オールインワン JAX-RS CDI/Spring Servlet JavaEEのAnnotation CDIかSpringとの組み合わせが事実上必須、複数の実装から選べる Ninja Guice Servlet Annotationなし オールインワン MSF4J DIなし netty JavaEEのAnnotation SparkFramework DIなし Servlet(Jetty) 独自Annotation RESTX DIなし Servlet JavaEEのAnnotation Vert.x DIなし netty Annotation無し 全力でasync DIの有無、通信部分、Annot

    DIとAOPが面倒になったは良いけど、結局どれにするんだ? - makotanのブログ
    n314
    n314 2016/04/05
  • Javaのマイクロフレームワーク ― この新トレンドは見逃せない | POSTD

    この記事は、JavaScalaの例外分析・パフォーマンス監視のツール Takapiblog に投稿されたものです。 Javaのマイクロフレームワークとは何か、推奨される理由とは? どんなプログラミング言語にも、長所と短所はあるものです。例えばJavaは、安全性の高さや、厳しいテストを経ていること、後方互換性などの利点を持つ言語です。しかし、その代償として、アジリティ(俊敏性)や合理性といった面が少なからず犠牲になっています。冗長で、Java自体が肥大化しているという事実も否定できません。とはいえ、新規開発や大規模な開発を行いたい場合、JVM(Java仮想マシン)はバックエンドとして非常に魅力的です。JVMはパワフルな上に、非常に厳しい環境でテストされています。このような利点があるため、結果的にJavaは広く使用され、積極的にデプロイされているのです。 しかし、このJavaの現状を皆

    Javaのマイクロフレームワーク ― この新トレンドは見逃せない | POSTD
  • Strutsを使い続けることの問題点&現在有力なJava EE、Spring、Play Frameworkの基礎知識とアーキテクチャ

    エンタープライズJava開発に従事している方であれば、一度はStruts 1を扱ったことがあるでしょう。Struts 1はJavaのWebアプリケーションフレームワークとして2001年ごろに誕生しました。 MVCモデルに基づいたアーキテクチャと高い生産性から、数年後にはデファクトスタンダードとなるほどの人気を獲得。当時、多くの企業がこぞってStruts 1を使った企業システムを構築しました。筆者自身が業界に入ったのは2004年のこと。最初に参加したプロジェクトがStruts 1を使った企業システムの構築だったことをよく覚えています。 当時に作られたシステムの多くは、今でも現役で稼働しています。最近でもStruts 1ベースの企業システムを改修する話はよく聞きます。しかし、2013年にサポート終了を迎えたため、今後Struts 1を使い続けることは大きなリスクになりました(参考)。つまり、新

    Strutsを使い続けることの問題点&現在有力なJava EE、Spring、Play Frameworkの基礎知識とアーキテクチャ
  • [Pleiades] Java 8 正式対応!Eclipse 4.4 Luna リリース - Qiita

    毎年 6 月恒例の Eclipse メジャーリリースとなる Eclipse 4.4 Luna (ルナ) がリリースされた。ラムダなど Java 8 に正式対応した初のバージョンだ。これに合わせて日語化された Eclipse と便利なプラグインや Java 8 実行環境を含む全部入りの Pleiades All in One もリリースした。 Pleiades All in One Eclipse 4.4 Luna ダウンロード http://mergedoc.sourceforge.jp/pleiades_distros4.4.html 起動時のスプラッシュは月 (Lunar Eclipse) のときに月から地球を見たときに発生しているであろう日イメージにした。地球の所々光っている部分は実際の街明かりで、韓国の北側の国が真っ暗で話題になった NASA の映像。背景は銀河中心方向の S

    [Pleiades] Java 8 正式対応!Eclipse 4.4 Luna リリース - Qiita
  • Tomcatの実装から学ぶクラスローダリーク #渋谷Java

    9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...NTT DATA Technology & Innovation

    Tomcatの実装から学ぶクラスローダリーク #渋谷Java
  • HashMapと無限ループとsynchronized - 谷本 心 in せろ部屋

    「HashMapのputとgetを同時に行うと、無限ループが発生する」という事は Javaエンジニアな皆さんならご存知だと思います。 1. 無限ループの再現 まずは論より証拠、無限ループになることを確認してみましょう。 こんなテストコードを書けば、すぐに再現できます。 public void testHashMap_無限ループ() throws InterruptedException { final Map<Integer, Integer> map = new HashMap<Integer, Integer>(); Runnable runnable = new Runnable() { public void run() { for (int i = 0; i < 1000000; i++) { int key = i % 10000; if (map.containsKey(ke

    HashMapと無限ループとsynchronized - 谷本 心 in せろ部屋
    n314
    n314 2015/05/28