getsをこよなく愛するID:HYjV15pa0のためにgetsの正しい使い方を考えてあげるスレです
老害によってC言語でのセキュアコーディング全否定まで話が飛んで行っちゃってるからこのスレタイでは役者不足だな
getsを正しく使うことが出来れば、いかなる脅威も防ぐ事が出来る
まず、プログラムの先頭でfstatしてレギュラーファイル以外だったら終了
次にfseek(stdin, bufsize, SEEK_END)
これで安全にgetsが使えるぞ
「無理」というのはですね、嘘吐きの言葉なんです。途中で止めてしまうから無理になるんですよ。
_____
/ミミ\\\\ \
/ミミミ\\\\\\\
/彡ミミミ\\\\\\\\
|彡ミミ/\\\\\\\\|
|彡 | \\\\\\\|
ヽ |へ、_ _,へ\\\\/
| __ __ | / ) ゲッツ!!
| |/ ノ
| ( / _ ) /
ヽ ヽ |
ヽ ヽー‐‐‐ァ /\
//ヽ ヽ-‐' / /\ \
/ / ヽ_ / / / \
/ \ |\ /| /\ \
(⌒\ / (⌒ヽ |二| | / \ \
__ゝ ヽ ___ ゝ \ \| / / |
( ヽ─ ( l ) ヽヽ / / / |
 ̄ ̄( ̄丿 |  ̄ ̄( ̄ ゝ \ / / |
( ̄ノ | ( ̄ ゝ | ̄ ̄ ̄ ̄ |
char a[100]; // 100バイト以上無理
gets(a);
「無理」というのはですね、嘘吐きの言葉なんです。途中で止めてしまうから無理になるんですよ。
> gets は、C言語における標準入力から1行分の文字列を取り出す関数である。
> この関数はバッファオーバーランを防ぐことが不可能という致命的な脆弱性を持っており、
> 2011年の改定のC11の標準CライブラリやC++14の標準C++ライブラリより廃止された[1]。
へー、相変わらずC言語はくだらない問題抱えてんなw
C言語自体が致命的な脆弱性持ってるんじゃねーの?www
使い方次第というのは、strcpy自身は脆弱だから
strcpyを呼び出す前に、脆弱性を回避するための
コードを入れるということですよね?
gets_s以外の_s関数は元の関数にちょっとチェック処理加えて簡単に実装できるけど
gets_sだけはgetsを使って実装するのは無理なんだよね?
他にもダメなのがあるのかな?
まあこういう単純な馬鹿をはじくということだけでも
c を採用するのは意味あることだな。
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
7P00B
馬鹿には使えない言語
しかし世の中には一定数の馬鹿が居るので
一定確率でとんでもない事故を引き起こしてしまう
精神論に対しては冷静な指摘をする純真な子供が必要だ