kokoichi206 / android-engineer-codecheck

Apache License 2.0
0 stars 0 forks source link

ソースコードの安全性の向上 #2

Closed github-actions[bot] closed 1 year ago

github-actions[bot] commented 1 year ago

本プロジェクトには安全性の低いがコードたくさんあります。下記のリストを参考に、安全性の低いコードを撲滅し、安全性を高めましょう。

kokoichi206 commented 1 year ago

API のレスポンスについて

そもそも読んでる API は Search repositories である。

JSONObject

JSONObject#optJSONArrayJSONArray もしくは null を返す。

実際に、JSONArray! が返り値なので、No Information: Platform Type(ニュートラル)である。

optString, optLong などは、値が存在しないときは "" や 0 を返すみたい。

レスポンス情報の取得について

現状取得してるのは以下の情報。

val jsonItem = jsonItems.optJSONObject(i)!!
val name = jsonItem.optString("full_name")
val ownerIconUrl = jsonItem.optJSONObject("owner")!!.optString("avatar_url")
val language = jsonItem.optString("language")
val stargazersCount = jsonItem.optLong("stargazers_count")
val watchersCount = jsonItem.optLong("watchers_count")
val forksCount = jsonItem.optLong("forks_conut")
val openIssuesCount = jsonItem.optLong("open_issues_count")

forks_conut に typo がありそうで、API のレスポンス情報を見てみた。 forks or forks_count が求めるものっぽい。

kokoichi206 commented 1 year ago

API の call について

今回使用している io.ktor.client.request パッケージの HttpClient.get について、以下の記載がある。

Executes a HttpClient GET request, with the specified url as URL and an optional block receiving an HttpRequestBuilder for further configuring the request. Tries to receive a specific type T, if fails, an exception is thrown.

例えばホスト名が間違ってる時などは java.net.UnknownHostException などが返ってきてアプリがクラッシュする。

今呼んでいる API のレスポンスコードとして考えられるものはこちらに記載がある

特に現状、エラーを補足してユーザーに表示するとかもないので、とりあえずキャッチだけしてクラッシュしないようにする。