2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

getsの正しい使い方を考えてあげるスレ

1 :デフォルトの名無しさん:2017/01/15(日) 21:28:14.86 ID:T6BZe6fz.net
getsをこよなく愛するID:HYjV15pa0のためにgetsの正しい使い方を考えてあげるスレです

2 :デフォルトの名無しさん:2017/01/15(日) 21:30:00.31 ID:T6BZe6fz.net
では、どーぞ

3 :デフォルトの名無しさん:2017/01/15(日) 21:40:42.25 ID:OwCHVx6x.net
老害によってC言語でのセキュアコーディング全否定まで話が飛んで行っちゃってるからこのスレタイでは役者不足だな

4 :デフォルトの名無しさん:2017/01/15(日) 21:49:46.17 ID:T6BZe6fz.net
getsを正しく使うことが出来れば、いかなる脅威も防ぐ事が出来る

5 :デフォルトの名無しさん:2017/01/15(日) 21:51:27.60 ID:Z39GcWi7.net
gets() はバッファに残すことがあるからな‥

6 :デフォルトの名無しさん:2017/01/15(日) 22:06:36.99 ID:T6BZe6fz.net
まず、プログラムの先頭でfstatしてレギュラーファイル以外だったら終了
次にfseek(stdin, bufsize, SEEK_END)
これで安全にgetsが使えるぞ

7 :デフォルトの名無しさん:2017/01/15(日) 23:54:33.61 ID:n4sLGdXn.net
getsは、無理

8 :デフォルトの名無しさん:2017/01/16(月) 00:03:41.33 ID:4D4bT+Tb.net
「無理」というのはですね、嘘吐きの言葉なんです。途中で止めてしまうから無理になるんですよ。

9 :デフォルトの名無しさん:2017/01/16(月) 01:21:04.13 ID:0nV0x3iS.net
                 _____
               /ミミ\\\\ \
             /ミミミ\\\\\\\
            /彡ミミミ\\\\\\\\
            |彡ミミ/\\\\\\\\|
              |彡 |   \\\\\\\|
             ヽ |へ、_  _,へ\\\\/
              | __   __  | / )   ゲッツ!!
              |           |/ ノ
              |   ( / _ )      /
              ヽ       ヽ   |
               ヽ ヽー‐‐‐ァ   /\
              //ヽ ヽ-‐'  / /\ \
            / /   ヽ_ /   / /   \
          /   \  |\  /|  /\      \
   (⌒\  /     (⌒ヽ |二| | /  \      \
 __ゝ  ヽ    ___ ゝ \  \| /   /       |
(        ヽ─ ( l )     ヽヽ  /  /   /     |
  ̄ ̄( ̄丿  |    ̄ ̄( ̄ ゝ  \ /    /       |
    ( ̄ノ  |      ( ̄ ゝ   | ̄ ̄ ̄ ̄        |

10 :デフォルトの名無しさん:2017/01/16(月) 01:25:27.53 ID:xL6PZBhm.net
gets_sならまだマシかも

11 :デフォルトの名無しさん:2017/01/16(月) 01:33:24.11 ID:0nV0x3iS.net
char a[100]; // 100バイト以上無理
gets(a);


「無理」というのはですね、嘘吐きの言葉なんです。途中で止めてしまうから無理になるんですよ。

12 :デフォルトの名無しさん:2017/01/16(月) 01:34:54.78 ID:0nV0x3iS.net
> gets は、C言語における標準入力から1行分の文字列を取り出す関数である。
> この関数はバッファオーバーランを防ぐことが不可能という致命的な脆弱性を持っており、
> 2011年の改定のC11の標準CライブラリやC++14の標準C++ライブラリより廃止された[1]。

へー、相変わらずC言語はくだらない問題抱えてんなw
C言語自体が致命的な脆弱性持ってるんじゃねーの?www

13 :デフォルトの名無しさん:2017/01/16(月) 01:44:05.68 ID:0nV0x3iS.net
>>10
> gets_sならまだマシかも

gets_sって標準関数なのかw

俺の記憶が正しければ、C言語の脆弱性に業を煮やしたマイクロソフトが
おめーら使うんじゃねーよ。全部、_s関数シリーズで置き換えてやらぁって
作ったものだと思ってたがw

http://www.kumei.ne.jp/c_lang/intro2/no_125.htm
> なお、gets_sとかstrcpy_s関数はVS2005特有の関数なので、現在のところ他の 環境では使うことができません。

そうか、マイクロソフトがC言語標準になったのかw

14 :デフォルトの名無しさん:2017/01/16(月) 01:52:47.96 ID:0nV0x3iS.net
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/c910.html
> バッファオーバーフロー(あふれ)対策が施された strcpy_s 関数をはじめとする 37の関数が導入された。

ひでーなw

C言語は高校の頃(2000年前後)に使っていたが
これらの関数使ったらバッファオーバーフロー(当時はこんな言葉知らなかった)
するけどどうやって防ぐん?って思ってたが、やはり使えない関数だったんだなw

15 :デフォルトの名無しさん:2017/01/16(月) 01:56:54.58 ID:0nV0x3iS.net
https://www.jpcert.or.jp/sc-rules/c-str07-c.html

> C 標準の附属書 K (規定) "Bounds-checking interfaces" [ISO/IEC 9899:2011] は、
> 既存の標準文字列処理関数に代わり、より安全に利用できるように設計された代替関数を規定している。
> たとえば、strcpy()、strcat()、strncpy() および strncat() の代替関数として、
> それぞれ strcpy_s()、strcat_s()、strncpy_s() および strncat_s() 関数を定義している。
>
> 附属書 K の関数は、過去 10 年間に起きた広く知られている多数のセキュリティインシデントに対応して、
> レガシーコードの改善に役立てる目的で Microsoft によって作成された。これらの関数はその後、
> プログラミング言語 C の国際標準化ワーキンググループ(ISO/IEC JTC1/SC22/WG14)へ、標準化のために提案された。

あってたーw
マイクロソフトがC標準関数を置き換えたという事実。
_sというダサいネーミングセンスによってC言語がマイクロソフトに犯されてしまってたwww

16 :デフォルトの名無しさん:2017/01/16(月) 01:59:56.49 ID:foM3Xg+4.net
strcpyは使い方次第で安全に使えるから

17 :デフォルトの名無しさん:2017/01/16(月) 02:10:29.70 ID:0nV0x3iS.net
使い方次第というのは、strcpy自身は脆弱だから
strcpyを呼び出す前に、脆弱性を回避するための
コードを入れるということですよね?

18 :デフォルトの名無しさん:2017/01/16(月) 05:47:48.17 ID:6vAXgKbK.net
gets_s以外の_s関数は元の関数にちょっとチェック処理加えて簡単に実装できるけど
gets_sだけはgetsを使って実装するのは無理なんだよね?
他にもダメなのがあるのかな?

19 :デフォルトの名無しさん:2017/01/16(月) 14:08:21.93 ID:VsU1oIPP.net
sは構造体につける印だから紛らわしい

20 :デフォルトの名無しさん:2017/01/16(月) 23:03:48.48 ID:l2xb+8XF.net
>>9
だれでも思いつくベタネタだが、まあ正しいの使い方ではあるな

21 :デフォルトの名無しさん:2017/01/29(日) 00:08:42.83 ID:l64DxDCa.net
まあこういう単純な馬鹿をはじくということだけでも
c を採用するのは意味あることだな。

22 :デフォルトの名無しさん:2017/11/05(日) 18:25:33.57 ID:rSDVGL6P.net
(σ・∀・)σゲッツ!!

23 :デフォルトの名無しさん:2017/11/11(土) 13:59:17.04 ID:9HDWObDB.net
C言語はゴミ

24 :デフォルトの名無しさん:2018/05/23(水) 21:17:37.59 ID:Au5e7VGg.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

7P00B

25 :デフォルトの名無しさん:2018/07/05(木) 00:40:09.26 ID:RfoszcD2.net
L51

26 :デフォルトの名無しさん:2018/11/20(火) 19:22:26.88 ID:fLsKk4Je.net
gets

27 :デフォルトの名無しさん:2020/04/22(水) 21:23:18.76 ID:TQVQtNCZ.net
馬鹿には使えない言語
しかし世の中には一定数の馬鹿が居るので
一定確率でとんでもない事故を引き起こしてしまう
精神論に対しては冷静な指摘をする純真な子供が必要だ

総レス数 27
8 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★