jitpack で配布しているライブラリに不必要な怪しい通信処理を入れて
Bintray -> jcenter() 経由で同じアーティファクトidで配布してる「Jake Whaarton」さん。
これは、神と呼ばれるJakeWarthonさんの偽物です。
Jake Wharthon → 本物
Jake Whaarton → 偽物
少し話題になってましたね。
A Confusing Dependency : androiddev
JitPackで配流しているライブラリと同じidのマルウェア入りアーティファクトがjcenterにあってそれが使われたという件。 / “A Confusing Dependency” https://t.co/cY3at8ZIzh
— FUJI Goro (@__gfx__) 2018年12月13日
すると、本物JakeさんのTwitterが!!
Jake Whaarton(@JakeWharton)さん | Twitter
なりすましてます、本物が偽物に。
この話を、解説しています。
Artifact integrity verification aside, not only should jcenter() always be last, but you need to put mavenCentral() before them. JCenter and Bintray keep proving they're not a trustworthy artifact host. Ideally you fetch nothing from them.https://t.co/5R6qS2cxQv
— Jake Whaarton (@JakeWharton) 2018年12月13日
アーティファクトの整合性の話は別にして、jcenter() を常に最後に置くだけでなく、mavenCentral() をそれらの前に置くことも必要です。
JCenter と Bintray は、信頼できるアーティファクトホストではありません。理想的なのはそれらから何も取得しないことです。
上から読んでいくリポジトリ群指定の最下位にオープンすぎる jcenter() を置くべし、と言っています。
repositories {
//...
mavenCentral()
jcenter()
}
しかし、ワロタ。
android - Why does the Google maven repository exist and when should I use it? - Stack Overflow