Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
myon-bioinformatics committed Jun 24, 2023
1 parent 4a0a7c1 commit c35497d
Showing 1 changed file with 64 additions and 6 deletions.
70 changes: 64 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@

**🦜コメントアウトや標準出力の利用であっても、プログラム内ではできるだけ英数字以外の文字を使わないようにしましょう🦜**


> __Note__ Now Preparing
# 🫶Notice🫶
```python
python main.py
Expand Down Expand Up @@ -147,14 +144,14 @@ About "繧ッ繝ュ繝シ繧ク繝」繧剃スソ逕ィ縺励◆" 👈even the J

But, they often use the char like ["表","能","十","法","充","型","施","倍","本","図"]

> ****(b'\x95\\') is noun and means 💹 📊 📈("chart", "table", "list" and so on).
> ****(b'\x95\\\\') is noun and means 💹 📊 📈("chart", "table", "list" and so on).
>
> For example: "matrix chart" equals "マトリックス表"(マトリックス=matrix)
>
> ****(b'\x94\\') is noun, and **能力** means "ability", "talent" ,and "skill".
> ****(b'\x94\\\\') is noun, and **能力** means "ability", "talent" ,and "skill".
> >btw, "力" is noun and means "power"💪.
>
> ****(b'\x8f\\') is noun and means "Ten(=10)"
> ****(b'\x8f\\\\') is noun and means "Ten(=10)"
>
> >🔟🔟(Twenty) expresses 20, or 二十(二=two)
>
Expand All @@ -168,10 +165,71 @@ But, they often use the char like ["表","能","十","法","充","型","施","

# 🚴‍♀️日本語話者に向けて

## はじめに
日本語をコメントや標準出力等で利用してる方向けへの説明なので、どちらかといえばコードよりもこちらの説明が本題かもしれませんね。

今回はコメントアウトの種類(`#` or `""" """`)とは関係ないPythonを実装したので、見かけ上は問題ないように見えます。

昔に比べると見かける機会が減りましたが、「繧ッ繝ュ繝シ繧ク繝」繧剃スソ逕ィ縺励◆」のような文字化けを目にしたことはございますか?

こうした理解できない変換の原因は、上に挙げた文字コードの違い(Shift_JIS)などに変換されたときに生じることがあるものです。


## 一番伝えたいこと
もちろん、正しい文字が反映されてない問題も気にすべきことなのですが、挙動が変わるのは視覚的の影響のみとは限りません。

今回のレポジトリで最も強く伝えたいことは**コメントアウトの英数字以外の文字が影響して挙動が変更することがある**ということです。

> 以下のような事例があります。
1. ポケットモンスター「赤」「緑」における裏技(バグ)
1. 「この行のコメントを消すとなぜかわからないけど動かなくなる」という現象
1. **エスケープ処理をしたはずのコードに発見された脆弱性(一部の事例)**

こうした事例の原因の一つにコメントアウトが英数字以外だったというケースがあります。

> また、フロントエンド、バックエンドなど関係なく以下のコメントアウトを残してる方がいます。
- #これは〇〇という機能
- #技術的に実装可能
- #〇〇の関数は出力する、例: 従業者リスト、売上表

### 本音はね...
セキュリティエンジニアとしてデバッグ機能が残ってるかコードをチェックする際によく目にする他、

その後のメソッドもコメントアウトを残してるケースも決して珍しくありません。。

条件が難しすぎて現実的でない場合は、脆弱性診断の際は「情報」となることがほとんどですが、

😶‍🌫️「せめて”."(ピリオド)でもつけてくれたらなぁ」と感じることがございます。

(こちらとしても仕事量はないに越したことはないので。。)

今回は目を引くためにBeginnersとわざわざ書きましたが、中上級者にもよくあります。

不勉強な中上級者ほど今までのやり方に固執しており、

同じプロジェクト内で仕事する上でも厄介なので、せめて初学者には気を付けていただきたいです。。

## 最後に

これからセキュリティが幾度となく叫ばれることになると思いますが、

その大半はヒューマンエラーによるものです。

不幸なことにレガシーな言語ほどそれがどうしようもないレベルまであるため、

リバースエンジニアリングを含むコードの改修の時に苦労を強いられるものです。。

しかし、”."(ピリオド)ひとつで問題の解決・軽微な脆弱性の対処が可能なので、

頭の片隅に入れていただけると幸いです。

## 参考
- [Shift_JISのダメ文字](https://sites.google.com/site/fudist/Home/grep/sjis-damemoji-jp?authuser=0)
- [マルチバイト文字](https://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91)
- [文字化け](https://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%90%E3%82%A4%E3%83%88%E6%96%87%E5%AD%97)

### コラム: これからの開発・改修に関する持論
> __Note__ Now Preparing


0 comments on commit c35497d

Please sign in to comment.