探検
getsの正しい使い方を考えてあげるスレ [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/01/15(日) 21:28:14.86ID:T6BZe6fz getsをこよなく愛するID:HYjV15pa0のためにgetsの正しい使い方を考えてあげるスレです
2017/01/15(日) 21:30:00.31ID:T6BZe6fz
では、どーぞ
3デフォルトの名無しさん
2017/01/15(日) 21:40:42.25ID:OwCHVx6x 老害によってC言語でのセキュアコーディング全否定まで話が飛んで行っちゃってるからこのスレタイでは役者不足だな
2017/01/15(日) 21:49:46.17ID:T6BZe6fz
getsを正しく使うことが出来れば、いかなる脅威も防ぐ事が出来る
2017/01/15(日) 21:51:27.60ID:Z39GcWi7
gets() はバッファに残すことがあるからな‥
2017/01/15(日) 22:06:36.99ID:T6BZe6fz
まず、プログラムの先頭でfstatしてレギュラーファイル以外だったら終了
次にfseek(stdin, bufsize, SEEK_END)
これで安全にgetsが使えるぞ
次にfseek(stdin, bufsize, SEEK_END)
これで安全にgetsが使えるぞ
7デフォルトの名無しさん
2017/01/15(日) 23:54:33.61ID:n4sLGdXn getsは、無理
2017/01/16(月) 00:03:41.33ID:4D4bT+Tb
「無理」というのはですね、嘘吐きの言葉なんです。途中で止めてしまうから無理になるんですよ。
2017/01/16(月) 01:21:04.13ID:0nV0x3iS
_____
/ミミ\\\\ \
/ミミミ\\\\\\\
/彡ミミミ\\\\\\\\
|彡ミミ/\\\\\\\\|
|彡 | \\\\\\\|
ヽ |へ、_ _,へ\\\\/
| __ __ | / ) ゲッツ!!
| |/ ノ
| ( / _ ) /
ヽ ヽ |
ヽ ヽー‐‐‐ァ /\
//ヽ ヽ-‐' / /\ \
/ / ヽ_ / / / \
/ \ |\ /| /\ \
(⌒\ / (⌒ヽ |二| | / \ \
__ゝ ヽ ___ ゝ \ \| / / |
( ヽ─ ( l ) ヽヽ / / / |
 ̄ ̄( ̄丿 |  ̄ ̄( ̄ ゝ \ / / |
( ̄ノ | ( ̄ ゝ | ̄ ̄ ̄ ̄ |
/ミミ\\\\ \
/ミミミ\\\\\\\
/彡ミミミ\\\\\\\\
|彡ミミ/\\\\\\\\|
|彡 | \\\\\\\|
ヽ |へ、_ _,へ\\\\/
| __ __ | / ) ゲッツ!!
| |/ ノ
| ( / _ ) /
ヽ ヽ |
ヽ ヽー‐‐‐ァ /\
//ヽ ヽ-‐' / /\ \
/ / ヽ_ / / / \
/ \ |\ /| /\ \
(⌒\ / (⌒ヽ |二| | / \ \
__ゝ ヽ ___ ゝ \ \| / / |
( ヽ─ ( l ) ヽヽ / / / |
 ̄ ̄( ̄丿 |  ̄ ̄( ̄ ゝ \ / / |
( ̄ノ | ( ̄ ゝ | ̄ ̄ ̄ ̄ |
2017/01/16(月) 01:25:27.53ID:xL6PZBhm
gets_sならまだマシかも
2017/01/16(月) 01:33:24.11ID:0nV0x3iS
char a[100]; // 100バイト以上無理
gets(a);
「無理」というのはですね、嘘吐きの言葉なんです。途中で止めてしまうから無理になるんですよ。
gets(a);
「無理」というのはですね、嘘吐きの言葉なんです。途中で止めてしまうから無理になるんですよ。
2017/01/16(月) 01:34:54.78ID:0nV0x3iS
> gets は、C言語における標準入力から1行分の文字列を取り出す関数である。
> この関数はバッファオーバーランを防ぐことが不可能という致命的な脆弱性を持っており、
> 2011年の改定のC11の標準CライブラリやC++14の標準C++ライブラリより廃止された[1]。
へー、相変わらずC言語はくだらない問題抱えてんなw
C言語自体が致命的な脆弱性持ってるんじゃねーの?www
> この関数はバッファオーバーランを防ぐことが不可能という致命的な脆弱性を持っており、
> 2011年の改定のC11の標準CライブラリやC++14の標準C++ライブラリより廃止された[1]。
へー、相変わらずC言語はくだらない問題抱えてんなw
C言語自体が致命的な脆弱性持ってるんじゃねーの?www
2017/01/16(月) 01:44:05.68ID:0nV0x3iS
>>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
> 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
2017/01/16(月) 01:52:47.96ID:0nV0x3iS
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/c910.html
> バッファオーバーフロー(あふれ)対策が施された strcpy_s 関数をはじめとする 37の関数が導入された。
ひでーなw
C言語は高校の頃(2000年前後)に使っていたが
これらの関数使ったらバッファオーバーフロー(当時はこんな言葉知らなかった)
するけどどうやって防ぐん?って思ってたが、やはり使えない関数だったんだなw
> バッファオーバーフロー(あふれ)対策が施された strcpy_s 関数をはじめとする 37の関数が導入された。
ひでーなw
C言語は高校の頃(2000年前後)に使っていたが
これらの関数使ったらバッファオーバーフロー(当時はこんな言葉知らなかった)
するけどどうやって防ぐん?って思ってたが、やはり使えない関数だったんだなw
2017/01/16(月) 01:56:54.58ID:0nV0x3iS
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
> 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.49ID:foM3Xg+4 strcpyは使い方次第で安全に使えるから
2017/01/16(月) 02:10:29.70ID:0nV0x3iS
使い方次第というのは、strcpy自身は脆弱だから
strcpyを呼び出す前に、脆弱性を回避するための
コードを入れるということですよね?
strcpyを呼び出す前に、脆弱性を回避するための
コードを入れるということですよね?
2017/01/16(月) 05:47:48.17ID:6vAXgKbK
gets_s以外の_s関数は元の関数にちょっとチェック処理加えて簡単に実装できるけど
gets_sだけはgetsを使って実装するのは無理なんだよね?
他にもダメなのがあるのかな?
gets_sだけはgetsを使って実装するのは無理なんだよね?
他にもダメなのがあるのかな?
2017/01/16(月) 14:08:21.93ID:VsU1oIPP
sは構造体につける印だから紛らわしい
2017/01/16(月) 23:03:48.48ID:l2xb+8XF
>>9
だれでも思いつくベタネタだが、まあ正しいの使い方ではあるな
だれでも思いつくベタネタだが、まあ正しいの使い方ではあるな
2017/01/29(日) 00:08:42.83ID:l64DxDCa
まあこういう単純な馬鹿をはじくということだけでも
c を採用するのは意味あることだな。
c を採用するのは意味あることだな。
22デフォルトの名無しさん
2017/11/05(日) 18:25:33.57ID:rSDVGL6P (σ・∀・)σゲッツ!!
2017/11/11(土) 13:59:17.04ID:9HDWObDB
C言語はゴミ
24デフォルトの名無しさん
2018/05/23(水) 21:17:37.59ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
7P00B
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
7P00B
25デフォルトの名無しさん
2018/07/05(木) 00:40:09.26ID:RfoszcD2 L51
26デフォルトの名無しさん
2018/11/20(火) 19:22:26.88ID:fLsKk4Je gets
27デフォルトの名無しさん
2020/04/22(水) 21:23:18.76ID:TQVQtNCZ 馬鹿には使えない言語
しかし世の中には一定数の馬鹿が居るので
一定確率でとんでもない事故を引き起こしてしまう
精神論に対しては冷静な指摘をする純真な子供が必要だ
しかし世の中には一定数の馬鹿が居るので
一定確率でとんでもない事故を引き起こしてしまう
精神論に対しては冷静な指摘をする純真な子供が必要だ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 【沖縄】開業4ヵ月でこれは…“国民の税金”投入の『ジャングリア沖縄』で見た衝撃的な光景と、モチベーションが低い一部スタッフの現状 [ぐれ★]
- 【東京】「家族で話題にして」 “世田谷一家殺害から25年 警視庁が呼びかけ [煮卵★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 前駐中国大使・垂秀夫『高市首相が台湾有事答弁を国会でしてしまったのは高市首相のなかに戦略的思考が無いから。安倍晋三を見習え』 [718678614]
- クズ「勉強頑張らなかった奴は一生DQNと一緒に肉体労働しろ」☚勉強頑張れるのも環境と巡り合わせなんだが? [783475554]
- 朝だよー🥁🥺ドンドンドンドン
- モブサイコ「私がJAグループに何か利益誘導するということは全くありません」 [402859164]
- ( ・᷄ὢ・᷅ )ケツ
- 【時事】立憲民主党、30代の支持率が「ゼロ」😨 [369521721]
