>それはCSVじゃないだろう。 ちなみに RFC-4180 はこう言ってますね。 >there is no formal specification in existence, >which allows for a wide variety of interpretations of CSV files. でもまあこれは20年ほど前の文書。 「それ(カンマを"で括らないの)はCSVじゃない」と言えるだけの根拠(たとえば公式仕様など)が それ以降にできていたのであれば、教えていただければ大変ありがたいです。
ネタをネタと見抜けない人たち (スコア:1)
この話をネタと見抜けない人は、プログラムが書けない人、いわゆるエスケープ処理を知らない人たちでしょうね。
パスワード盗むスキルがある人なら簡単に対処できます。CSVがぶっ壊れるとか、この行を削除したら動くってのは、単なる冗談。
Re: (スコア:0)
それは、例えばSQLインジェクションでパスワードを流出させちゃった連中はプログラムを書けない人と皮肉っている?
Re: (スコア:0)
世の中にはSQLエスケープ処理を自分で書くアホもいれば、CSVパーサーを自分で書くアホもいるので・・
なぜライブラリを使わないのだろうか。古代のperl CGIじゃあるまいし。
Re: (スコア:0)
つまりそのようなアホがいる以上元コメのように簡単にネタとも断定できないということですね。
Re: (スコア:0)
新元号追加→「自分で元号処理書くやつは馬鹿」
→Windowsの元号処理に不具合発覚→「他人の書いたコードを信用するやつは馬鹿」
の手のひらドリル事後諸葛亮には笑った
Re: (スコア:0)
これはおかしなこと言ってないと思うぞ。
出来の悪い自作も他作も使うべきではないで両立するからな。
特にMSなんか信用できないのは当然。
出来のいいライブラリを使う力が必要なんだよ。
Re: (スコア:0)
これは安易に馬鹿だ馬鹿だと罵倒する連中を馬鹿にしてるんだよ
Re: (スコア:0)
かきだしだけならたんじゅんなるーぷでいけるし…
Re: (スコア:0)
>なぜライブラリを使わないのだろうか
と言われれば言語の標準装備じゃないから。
入力が自分が作ったものだったり、運用でカバーできる前提だったりしたら、
読んできた行を単純に","で分割するなんてコードはよく書く。
バグったらコードじゃなくてデータの方を直す。
前提条件が変わって重大な障害を引き起こす可能性があるのはわかるが、知らんがなとしか。
Re: (スコア:0)
あなたの在職中は動くけれど、引継者が地雷を踏むケースですね。。
Re: (スコア:0)
元ネタはダンプ云々いってるからただの冗談だと思うけど、
流出データ自体がCSVならありえないこともない気がするけどね。
いろいろ推察して読み方を変えてみても、100%成功するとは限らない。
Re: (スコア:0)
それはCSVじゃないだろう。
CSVならちゃんと
user,"pass,word"
となってるから、普通にパーズしてやればちゃんと読める。
Re: (スコア:0)
>それはCSVじゃないだろう。
ちなみに RFC-4180 はこう言ってますね。
>there is no formal specification in existence,
>which allows for a wide variety of interpretations of CSV files.
でもまあこれは20年ほど前の文書。
「それ(カンマを"で括らないの)はCSVじゃない」と言えるだけの根拠(たとえば公式仕様など)が
それ以降にできていたのであれば、教えていただければ大変ありがたいです。
Re: (スコア:0)
△ user,"pass,word"
○ "user","pass,word"
抜けの可能性があるよりは冗長な方が良い
Re: (スコア:0)
じゃあパスワードは「pass","word」と…
Re: (スコア:0)
たとえば、100万人のアカウントを盗んだハッカーが、1つのコンマ入りアカウントの対策にそこまでするだろうか?
もしコンマ入りアカウントが大統領とか要人とか、ターゲットのアカウントなら対処するだろうが、
特定ターゲットを狙わない攻撃なら、1つのアカウントに手間をかけるとはおもえない
Re:ネタをネタと見抜けない人たち (スコア:1)
そもそも「データに紛れたカンマでCSVが壊れる」というのは、CSVを書き出す処理をわざわざ手書きして、「CSVの仕様を満たしてないゴミデータを書き出してしまう可能性のあるダメなプログラム」を作った場合にしか起こらないんだ。
データに「,」とか「\n」とか「"」を含める場合にどうするかというのはCSVファイルの仕様で決まってる。だから正しいライブラリを使えば、それらを含んだデータでも壊れたCSVファイルにはならない。読み込みも同じく、正しいライブラリに任せれば良いだけ。
スクリプト言語だと標準ライブラリに含まれてたりする。それ以外の言語でも、だいたいまあ、誰かが作ったちゃんとしたやつはいくらでも公開されてる。まあ、実務だと、ライセンスがー、というのが問題で気楽に使えない可能性もあるけど、パスワード盗むようなハッカーの話だしなぁ(笑)。
綺麗なデータしか扱わないし、ライブラリを探したり使い方を調べる時間が無駄、というのはあり得るかもだけど、ちゃんと読み書きする処理を書くことまで考えると時間の節約になる。CSVの仕様から調べないとダメだしね。ちょっとした処理の見本として便利だからって、その辺を考慮しないCSV風のデータを読み書きするルーチンが、よく「CSVファイルを読み書きするコード例」として出されちゃってるけど、人にものを教えるつもりで情報発信するならもうちょっと気を使った方が良い。
Re: (スコア:0)
あんなに使われてるのに国際標準とかにはなってないの? それはビックリ。面白い情報をありがとう。
まあ、Python辺りのソースコードを参考にしたら実用十分で説明責任も果たせるんじゃないかなぁ。
Re: (スコア:0)
はい。
https://www.rfc-editor.org/rfc/rfc4180 [rfc-editor.org]
ていうか自分で見つけられなかったの? マジで?
まあこの仕様のCSVはExcelと互換性がないので実質使い物にならないんだけど
Re: (スコア:0)
そこに載ってるのはインターネット用の標準なのでちょっと… csvはむしろインターネット外で使われる規格であるからしてインターネット用の標準化団体の規格なんて結局外野が勝手に決めた企画で下手すりゃ混沌を悪化させただけ。
Re: (スコア:0)
それを指して仕様と言えるのって、中身を読んでない人くらいでは?
Re: (スコア:0)
いや、仕様の一つではあるだろ。
>This section documents the format that seems to be followed by most implementations:
だから、まあ仕様と解釈していいだろうよ。公式仕様とか標準仕様とは解釈できないけどな。
Re: (スコア:0)
そもそも#4344334は仕様としか言っていないのに国際だの公式だの標準だのと後出しジャンケンされてもな
Re: (スコア:0)
つまり
「CSVの仕様を満たしてないゴミデータを書き出してしまう可能性のあるダメなプログラム」
というものは存在しないということでいいですか
それともMS Excelが「CSVの仕様を満たしてないゴミデータを書き出してしまう可能性のあるダメなプログラム」ってことですか
Re: (スコア:0)
そもそもハッカーが100万人単位の情報抜き取るときはSQLデータベースのダンプだからカンマが入ってようが壊れたりしない
SQLからCSVに変換して二次流通させるときは変換ツール側で自動的にダブルクオートされるから壊れない
Re: (スコア:0)
盗む奴と売り捌く奴が同一とは限らないんでは。
Re: (スコア:0)
おいやめろ最近寝ぼけてミスした俺の傷に塩を塗るな。