並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 334件

新着順 人気順

エンコーディングの検索結果1 - 40 件 / 334件

  • HTML文書は文字エンコーディングUTF-8でなければなりません - 水底の血

    さよならレガシーエンコーディング。 文字エンコーディング宣言が存在するかどうかにかかわらず、文書のエンコードに使用される実際の文字エンコーディングはUTF-8でなければならない。 4.2.5.5 文書の文字エンコーディングを指定する - HTML Standard 日本語訳 Require utf-8 when specifying character encoding by sideshowbarker · Pull Request #3091 · whatwg/htmlにより、HTMLで使用できるエンコーディングはUTF-8のみとなりました。これにより、古いHTMLでは許容されていた、Shift_JIS、ISO-2022-JP、EUC-JP、UTF16LEといった文字エンコーディングは適合するHTMLではなくなりました。すでにNu Html CheckerでUTF-8以外の文字エンコー

      HTML文書は文字エンコーディングUTF-8でなければなりません - 水底の血
    • PHP以外では: 既にあたり前になりつつある文字エンコーディングバリデーション - 徳丸浩の日記(2009-09-14)

      _既にあたり前になりつつある文字エンコーディングバリデーション 大垣靖男さんの日記「何故かあたり前にならない文字エンコーディングバリデーション」に端を発して、入力データなどの文字エンコーディングの妥当性チェックをどう行うかが議論になっています。チェック自体が必要であることは皆さん同意のようですが、 チェック担当はアプリケーションか、基盤ソフト(言語、フレームワークなど)か 入力・処理・出力のどこでチェックするのか という点で、さまざまな意見が寄せられています。大垣さん自身は、アプリケーションが入力時点でチェックすべきと主張されています。これに対して、いや基盤ソフトでチェックすべきだとか、文字列を「使うとき」にチェックすべきだという意見が出ています。 たとえば、id:ikepyonの日記「[セキュリティ]何故かあたり前にならない文字エンコーディングバリデーション」では、このチェックは基盤ソフ

      • 第7回■文字エンコーディングが生み出すぜい弱性を知る

        文字コードに関する問題は大別すると文字集合の問題と文字エンコーディングの問題に分類できる。前回は文字集合の取り扱いに起因するぜい弱性について説明したので、今回は文字エンコーディングに起因するぜい弱性について説明しよう。 文字エンコーディングに依存する問題をさらに分類すると2種類ある。(1)文字エンコーディングとして不正なデータを用いると攻撃が成立してしまう点と,(2)文字エンコーディングの処理が不十分なためにぜい弱性が生じることがある点だ。 不正な文字エンコーディング(1)――冗長なUTF-8符号化問題 まず,(1)の不正な文字エンコーディングの代表として,冗長なUTF-8符号化問題から説明しよう。前々回に解説したUTF-8のビット・パターン(表1に再掲)を見ると,コード・ポイントの範囲ごとにビット・パターンが割り当てられているが,ビット・パターン上は,より多くのバイト数を使っても同じコー

          第7回■文字エンコーディングが生み出すぜい弱性を知る
        • Python 3.15からデフォルトのエンコーディングがUTF-8になります - methaneのブログ

          Pythonがファイルを開くときなどに使われるエンコーディングはロケール(WindowsではANSIコードページ)依存でした。 Unixの世界ではどんどんUTF-8ロケールが一般的になっている一方、WindowsのANSIコードページはなかなかUTF-8になりません。 そのために、Unixユーザーが open(filepath) のようにエンコーディングを指定しないままUTF-8を仮定するコードを気軽に書いてしまって、Windowsユーザーがエラーで困るといった問題が発生します。 また、Windowsでもメモ帳(Notepad.exe)やVSCodeはすでにUTF-8をデフォルトのエンコーディングで使用しています。ANSIコードページがUTF-8になるのを待っていたらどんどん周りの環境から置いていかれ、レガシー化してしまいます。 Pythonがデフォルトで利用するエンコーディングをWind

            Python 3.15からデフォルトのエンコーディングがUTF-8になります - methaneのブログ
          • UTF-8 エンコーディングの危険性 - WebOS Goodies

            基本的に、まともな国際化ライブラリを使っていれば、上記のような不正な文字コードはきちんと処理してくれるはずです。実際、 Opera, Firefox, IE ともに適切にエスケープしてくれました。また、 UCS に変換した後にエスケープ処理を行うことでも対処できるかもしれません。しかし、複数のモジュールで構成されるような規模の大きいアプリケーションでは、そのすべてが適切な処理を行っていると保証するのも、なかなか難しいかと思います。ここはやはり、すべての外部入力に含まれる不正なシーケンスを、水際で正規化するという処理を徹底するのが一番かと思います。 例えば Ruby の場合、不正な UTF-8 コードを検出する最も簡単な方法は、 String#unpack を使って UCS へ変換してみることです(昨日の記事への kazutanaka さんからのはてぶコメントにて、 iconv でも同様なこ

            • Rubyのエンコーディング - tmtms のメモ

              Ruby 1.9 から文字列や正規表現オブジェクトはそれぞれエンコーディング(いわゆる文字コード)を保持するようになりました。 たとえば 0xB1 0xB2 という2バイトは EUC-JP エンコーディングでは「渦」、SHIFT_JIS エンコーディングでは「アイ」という文字になります。つまり同じバイト列でもエンコーディングが異なれば異なる文字として解釈されます。 1.8 では文字列はただのバイト列でした。なので、それがどのような文字を表しているのか、つまりエンコーディングが何なのかはプログラムが知っている必要がありました。 1.9 では文字列オブジェクト自身が自分が何のエンコーディングかを知っています。同じ 0xB1 0xB2 というバイト列でも、それが EUC-JP の「渦」なのか SHIFT_JIS の「アイ」なのかは、文字列自身が知っています。 スクリプトエンコーディング スクリプ

                Rubyのエンコーディング - tmtms のメモ
              • セキュリティ専門家でも間違える!文字エンコーディング問題は難しいのか?

                (Last Updated On: 2018年8月13日)一見徳丸さんのブログは分かりやすいように思えますが、それは単純な実験により分かりやすいように見えるだけで複数の間違いがあります。 その間違いとは 意図の取り違い – 誤読 言語の仕様と実装の理解不足 HTTPやPHP仕様の理解不足 セキュリティ対策をすべき場所の理解不足 です。(※0) 徳丸さんは非常勤とは言え、国の出先機関の研究員であるし、その出先機関は職務放棄とも言える文書(「例えば、PHPを使用しない」と勧める文書)を公開している(いた?)のでしっかり反論しておく必用がありますね。IPAのあの文書は職務放棄と言える文書だと思っています。これについても後で意見を述べます。 意図の取り違い – 誤読 最初の間違いは私のブログのエントリ「何故かあたり前にならない文字エンコーディングバリデーション」に対する理解です。特にPHPユーザに

                  セキュリティ専門家でも間違える!文字エンコーディング問題は難しいのか?
                • 対策遅らせるHTMLエンコーディングの「神話」

                  クロスサイト・スクリプティングという言葉は元々,WebアプリケーションのHTMLエンコード漏れなどを利用することによって第三者にJavaScriptを実行させる手法を指す。広義では,HTMLのエンコードによる画面改変などを含むこともある。 前回述べたように,クロスサイト・スクリプティングのぜい弱性はWebアプリケーションに見付かるぜい弱性の半分以上を占める。数年前から指摘されているにもかかわらず,一向になくならない。その理由として,クロスサイト・スクリプティング対策あるいはHTMLエンコード注1)に対する「神話」があり,正しい対策の普及を遅らせているように思う。その「神話」の数々について説明しよう。 注1)実体参照(entity reference)というのが正式だが,あまり普及していない用語なので,HTMLエンコードという用語を用いる 「すべからくHTMLエンコードすべし」が鉄則 HTM

                    対策遅らせるHTMLエンコーディングの「神話」
                  • 本当はこわいエンコーディングの話 // Speaker Deck

                    東京Ruby会議10 で発表したスライド

                      本当はこわいエンコーディングの話 // Speaker Deck
                    • yohgaki's blog - これからのプログラムの作り方 - 文字エンコーディング検証は必須

                      (Last Updated On: 2016年3月3日)最近PostgreSQL、MySQL両方にSJISエンコーディングを利用している際のエスケープ方法の問題を修正がリリースされています。この件は単純に「データベースシステムにセキュリティ上の脆弱性があった」と言う問題ではなく「アプリケーションの作り方を変える必要性」を提起した問題です。 参考:セキュアなアプリケーションのアーキテクチャ – sandbox化 PostgreSQL、MySQLの脆弱性は特にSJIS等、マルチバイト文字に\が含まれる文字エンコーディングが大きな影響を受けますが、同類の不正な文字エンコーディングを利用した攻撃方法が他の文字エンコーディングでも可能です。例えば、UTF-8エンコーディングは1文字を構成するバイト列の最初のバイトの何ビット目までが1であるか、を取得してUTF-8文字として1バイト~6バイト必要なのか

                        yohgaki's blog - これからのプログラムの作り方 - 文字エンコーディング検証は必須
                      • 何故かあたり前にならない文字エンコーディングバリデーション

                        (Last Updated On: 2018年8月8日)私が4年前(2005年)に「Webアプリセキュリティ対策入門」を執筆していた時には、既に壊れた文字エンコーディングなどの不正な文字エンコーディングを利用したJavaScriptインジェクションやSQLインジェクション攻撃は比較的広く知られていました。この問題は当時のスラッシュドットジャパンでも取り上げられていました。/.で取り上げられたので、そこら中のWebサイトとユーザが被害に合うのでは?とヒヤヒヤしたので良く覚えています。 不正な文字エンコーディングを利用した攻撃は、文字エンコーディングを厳格に取り扱い、文字エンコーディングをバリデーションすれば無くなります。これを怠ると、システムのどこで問題が発生するか予想できなくなります。つまり、いい加減に文字エンコーディングを取り扱うと安全なシステムは作れないのです。 参考:エンジニア向けに

                          何故かあたり前にならない文字エンコーディングバリデーション
                        • ExcelでUTF-8エンコーディングされたCSVファイルを開く方法 - 小さい頃はエラ呼吸

                          photo credit: gonzalo_ar via photopin cc はじめに このエントリでは、ExcelでUTF-8エンコーディングされたCSVファイルを開く方法を紹介します。 Excel VBAのプログラミングのツボとコツがゼッタイにわかる本―最初からそう教えてくれればいいのに!Excel2007/2003対応posted with amazlet at 12.12.23立山 秀利 秀和システム 売り上げランキング: 1,346 Amazon.co.jp で詳細を見る 結論 以下のような3つの方法があります。 拡張子をcsvからtxtに変更してから開く。 CSVファイルをBOMつきのUTF-8ファイルに保存しなおしてから開く。 CSVファイルの保存形式をANSIに変更してから開く。 ExcelはCSVファイルをShift_JISで開こうとする Excelは、CSVファイル

                            ExcelでUTF-8エンコーディングされたCSVファイルを開く方法 - 小さい頃はエラ呼吸
                          • Mozillaのコードを切り出してライブラリ化した文字エンコーディング判別ライブラリ「Universalchardet」をjavaにポーティング

                            Code Archive Skip to content Google About Google Privacy Terms

                            • Rubyのエンコーディングその2 - tmtms のメモ

                              この前「Rubyのエンコーディング」という記事を書いたのですが、それをネタに 8/25 の NSEG で発表しました。 Rubyのエンコーディング from Masahiro Tomita この中で、エンコーディングが原因で予期しないところで落ちてしまうことが結構あるという話もしたんですが、今回はプログラムが落ちないようにするにはどうすればいいかを考えてみます。 エンコーディングが原因で落ちてしまうのは大体次のパターンのようです。 文字列や正規表現のエンコーディングが異なる 文字列中に不正な文字が含まれている 文字列や正規表現のエンコーディングが異なる 正規表現をリテラルで生成していれば、エンコーディングは敢えて指定しない限りは普通はスクリプトエンコーディングになってると思うので、問題は文字列の方です。 特にファイルから読み込んだ文字列のエンコーディングが何になっているかに注意しましょう。

                                Rubyのエンコーディングその2 - tmtms のメモ
                              • Vim: エンコーディング関係の設定の仕方 - while (”im mirrored”);

                                vimVimでのエンコーディング関係のオプションは次の通り:'encoding'グローバルなオプション。Vimが内部で用いるエンコーディングを指定する。バッファやレジスタやVimスクリプトでの文字列の中身はこのオプションで指定されたエンコーディングが用いられる。また、他のエンコーディング関係のオプションが未設定ならばデフォルトの値としても用いられる。基本的にvimrc以外で変更すべきではない。また、このオプションを変更しても既存のバッファやレジスタやVimスクリプトでの文字列の中身のエンコーディングは変化しない。(なお、ヘルプでは明言されていないがsystem()の結果は常に'encoding'として扱われ、'fileencoding'への変換は行われない。変換を期待する場合は:read!を使う必要がある。このためにvcscommandは一部で不具合が出る。)'fileencoding'バ

                                • パーセントエンコーディング - Wikipedia

                                  パーセントエンコーディング (英: percent-encoding) とは、URIにおいて使用できない文字を使う際に行われるエンコード(一種のエスケープ)の名称である。「%」を使用していることから、この名称で呼ばれている。一般にURLエンコードとも称される。 URLエンコードには、上記のパーセントエンコーディングによる符号化と以下に記述するapplication/x-www-form-urlencodedによる符号化の2種類がある。半角スペースはパーセントエンコーディングでは「%20」に符号化されるが、application/x-www-form-urlencodedによる符号化では「+」に符号化される。 概要[編集] URL Standardでは、URLのパス部分の構文解析の際、以下 (path percent-encode set) に該当する文字であれば、UTF-8で符号化のうえパ

                                  • 文字エンコーディングの検出方法

                                    こんにちは、技術開発室の滝澤です。 最近(2021年春)、Go言語でメールパーサーを書く機会があり、備忘録的な意味でも知見をまとめておこうかなと思い、この記事を書きました。 メールパーサーを書いていて考慮しないといけないことの一つは、文字エンコーディング(charset)が正しく指定されていないメールがときどきあることです。 MIME(Multipurpose Internet Mail Extensions)関連のインターネット標準であるRFCが公開された1990年代や世間一般にインターネットメールが利用され始めた2000年代初期ならともかくとして、2021年にもなってまだその点を考慮しないといけないのはなかなかつらいことです。 そのようなメールを取り扱うときには、文字エンコーディングの検出を行う必要があります。本記事ではその文字エンコーディングの検出方法について書いてみました。 なお、

                                    • 説明してくれてるサイト 文字化けしてる場合は「表示→テキストエンコーディング→日本語(Shift JIS)」にすればおk!

                                      金策を模索しているあなたへ もしあなたが金策を模索しているなら、中小の消費者金融にチャレンジしてみてはいかがでしょうか? 中小消費者金融では、独自の審査基準を用いて貸し付けが行われているので、もし大手や銀行で断られた場合でも借りられる可能性があります。 ただ、中小消費者金融と言っても数多く存在しているので、特におすすめの会社を3つだけ厳選してみました。 もし、金策をお探しでしたら、一度審査だけでも申し込んでみるのがお勧めです。 中小消費者金融でも借りれないなら 上記で紹介した中小消費者金融でも借りれないあなたは、 ・総量規制をオーバーしている(年収の3分の1以上の借り入れがある) ・5件以上の他社借り入れがある といった状況ではありませんか? 正直ここまで来ると、さらに新たな借り入れ先を探すのはかなり困難です。 そのため、今後はおまとめローン(借換ローン)で借り入れを一本化し、金利を安くす

                                      • 論点の整理: 文字エンコーディングバリデーションは自動化が望ましい - 徳丸浩の日記(2009-09-18)

                                        _文字エンコーディングバリデーションは自動化が望ましい 私が9月14日に書いたブログエントリPHP以外では - 既にあたり前になりつつある文字エンコーディングバリデーションに対して、大垣靖男さんから名指しで「セキュリティ専門家でも間違える!文字エンコーディング問題は難しいのか?」というエントリを頂戴しましたので、それに回答する内容を書きたいと思います。 まずは論点の整理から始めます。 合意していると思われる内容 まずは合意できていると思われる内容から書き始めたいと思います。以下の内容は、大垣さんと私で合意事項だと考えています。 論点1.文字エンコーディングの問題によるセキュリティ上の脅威がある 論点2.文字エンコーディングに起因するセキュリティ上の問題に対して、文字エンコーディングのバリデーションが有効である 論点3.Webアプリケーションによっては文字エンコーディングのバリデーションが不

                                        • [Python] UnicodeEncodeErrorが発生した場合は、sitecustomize.pyでデフォルトのエンコーディングを指定する。 - SumiTomohiko's blog

                                          環境 この記事の内容は、Ubuntu 6.10, Python 2.4で確認しました。 現象 ユニコード文字列をstr関数に与えると、UnicodeEncodeErrorが発生します。 $ python Python 2.4.4c1 (#2, Oct 11 2006, 21:51:02) [GCC 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> s = u'ほげ' >>> str(s) Traceback (most recent call last): File "", line 1, in ? UnicodeEncodeError: 'ascii' codec

                                            [Python] UnicodeEncodeErrorが発生した場合は、sitecustomize.pyでデフォルトのエンコーディングを指定する。 - SumiTomohiko's blog
                                          • @IT:.NET TIPS Encodingクラスで扱えるエンコーディング名は? - C#

                                            本稿は2003/04/11に初版公開、2008/07/24に改訂した記事を再改訂し、Visual Studio 2017でコードの動作検証、図版の追加、全般的な構成の変更などを行ったものです。 ファイルの読み書きなどで文字コードを指定したいときがある。そのために使うEncodingクラス(System.Text名前空間)のインスタンスは、どのようにして取得すればよいだろうか? また、日本語独自のエンコーディングを指定するには、どのようなエンコーディング名が使えるのだろうか? 本稿で整理して紹介する。

                                              @IT:.NET TIPS Encodingクラスで扱えるエンコーディング名は? - C#
                                            • ビデオエンコーディングの覇権争いはH264の圧勝? 全ウェブビデオ中66%がH.264フォーマットを採用

                                              Last month, one of the Bay Area’s better-known early-stage venture capital firms, Uncork Capital, marked its 20th anniversary with a party in a renovated church in San Francisco’s SoMa neighborhood,…

                                                ビデオエンコーディングの覇権争いはH264の圧勝? 全ウェブビデオ中66%がH.264フォーマットを採用
                                              • テキストファイルの標準エンコーディングは? - やねうらおブログ(移転しました)

                                                テキストファイルのエンコーディングとして何を基本とすべきかというのは悩ましい。 日本語のみならutf-16で幸せになれるのかと思ったら、JIS2004で追加された907字のうち304文字がサロゲートペアであって、2バイトで表現できない。 どうせ16bitで表現しきれないのなら、utf-32は保存領域がもったいない感があるので仕方ないのでutf-8を選択する。 utf-8だと相手に解釈してもらうためには、BOMをつけるほうが好ましい。 そこで、秀丸で標準保存形式としてutf-8(BOMつき)を設定しておく。 秀丸の拡張子関連づけで、".txt"を秀丸と関連づけておく。 よし、これでテキストファイルを新規作成して、秀丸で開くと…。 utf-8(BOMなし)と解釈される。一体どうなっているのか。 Windowsではエクスプローラーからファイルを新規作成するときにテンプレートを設定しておくことが出

                                                  テキストファイルの標準エンコーディングは? - やねうらおブログ(移転しました)
                                                • 第9回■上流工程で文字集合仕様と文字エンコーディングを決定する

                                                  これらの対策のうち,ここでは「文字集合の変換を伴う変換をしない」など,アプリケーション全体の文字コードの取り扱いについて上流工程で留意すべき内容について説明しよう。「入力値のチェック」については次回以降,「入力値の検証」の項で詳しく説明する。「アプリケーションでの正しいマルチバイト文字の処理」については,個別の処理内容の項で説明する。 文字コードの取り扱いについて,上流工程で留意すべき点としては,次の三つが挙げられる。 要求仕様として文字集合を定義する端末がサポートする文字集合を確認する実装に用いる文字エンコーディングを決定する まずアプリケーション仕様として,処理対象となる文字集合を規定する必要がある。日英語以外の韓国語や中国語,アラビア語などの対応が必要な場合はUnicodeを選択するしかない。さらに日本語だけの場合でも,例えばJIS X 0201+JIS X 0208はJIS第2水準

                                                    第9回■上流工程で文字集合仕様と文字エンコーディングを決定する
                                                  • スラッシュドット ジャパン | 文字エンコーディングはUTF8で本当に十分なのか?

                                                    RedHatの技術者であり、Debian開発者でもあるtagoh氏のblogに「 UTF-8は十分かどうか」という書き込みがある。 これは、「 シフトJISを捨てられるか?」というITproの記事に対して、Ruby開発者のMatz氏が 「『短いに越したことはない』というごく弱い理由で、さらに別のエンコーディングの必要性をほのめかさないでいただきたい」 と、自身の日記で述べていることに対して、 tagoh氏が意見を述べているものだ。 tagoh氏によれば、エンコーディングを増やさないことは賛同できるが、「UTF8でいいのか」というところには特に他言語を考慮した場合において疑問を呈し、 「エンコーディングに言語タグでも入れた方がいいんではないだろうか」と意見を述べている。 locale併用というのは今の方式だが、これでは複数言語を使えないわけで、tagoh氏の言語タグということには賛同できる。

                                                    • Java 8 で Base64 エンコーディング機能が導入されたらしいので使ってみた

                                                      「何をいまさら」な感じの機能追加だけど、Java 8 から 標準のクラスライブラリで Base64 エンコーディング できるようになった。これはこれで嬉しいことなので、使い方とそのパフォーマンスをメモっておく。 使い方 まずはデモコードから。 エンコーダは以下のメソッド呼び出しで得られる 3 つの種類がある。 Base64.getEncoder() Base64.getUrlEncoder() Base64.getMimeEncoder() 対応するデコーダがそれぞれ用意されている。 Base64.getDecoder() Base64.getUrlDecoder() Base64.getMimeDecoder() Base64.getUrlEncoder() で得られるエンコード文字列は、普通の Base64 エンコーディングではファイルパスや URI での利用時に問題となりうる +/

                                                        Java 8 で Base64 エンコーディング機能が導入されたらしいので使ってみた
                                                      • htmlspecialcharsは不正な文字エンコーディングをどこまでチェックするか

                                                        補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブ、はてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2009年9月30日に公開されたもので、当時の徳丸の考えを示すものを、基本的に内容を変更せずにそのまま転載するものです。 補足終わり このエントリでは、PHPのhtmlspecialchars関数の第三パラメータ(文字エンコーディング指定)により、どこまで文字エンコーディングの妥当性チェックをしているかを報告します。 2007年4月に、寺田氏(id:teracc)の素晴らしいエントリ「htmlspecialcharsと不正な文字の話」により、htmlspecialcharsは、第三パラメータの文字コードを実質的に無視しており、不正な文字エンコーディングが指定された場合、その文字はチェックされずにすり抜けてしまうという結果が報告されています。

                                                        • MIMEヘッダエンコーディングは複雑すぎてつらい / MIME header encoding is hard

                                                          プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping

                                                            MIMEヘッダエンコーディングは複雑すぎてつらい / MIME header encoding is hard
                                                          • PythonのデフォルトエンコーディングをUTF-8にするために - methaneのブログ

                                                            Python がテキストファイルを開く時のデフォルトエンコーディングがUTF-8でないことは、多くのWindowsユーザー、特にプログラミング初心者にとって障害になっています。 UnicodeDecodeError で検索すると、多くのWindowsユーザーが問題に遭遇しているのがわかります。 https://qiita.com/Yuu94/items/9ffdfcb2c26d6b33792e https://www.mikan-partners.com/archives/3212 https://teratail.com/questions/268749 https://github.com/neovim/pynvim/issues/443 https://www.coder.work/article/1284080 https://teratail.com/questions/2713

                                                              PythonのデフォルトエンコーディングをUTF-8にするために - methaneのブログ
                                                            • PHPのmb_ereg関数群は不正な文字エンコーディングをチェックしない

                                                              PHPのbasename関数には、マルチバイトに対応していないという誤解(実際にはロケールの設定をすればマルチバイトでも使える)があったり、不正な文字エンコーディングをチェックしないという課題があったりで、イマイチだなーと思っている方も多いと思います。 そういう方々が、preg_replace(u修飾子つき)やmb_ereg_replaceを用いて代替関数を作成している解説も見かけますが、それではこれら正規表現関数は不正な文字エンコーディングをチェックしているのだろうかという疑問が生じます。 ざっと調べたところ、以下の様な状況のようです。 preg_replace : 不正な文字エンコーディングをチェックしている mb_ereg_replcae : 不正な文字エンコーディングをチェックしていない ここでは、mb_ereg_replaceが不正な文字エンコーディングをチェックしない状況と、そ

                                                                PHPのmb_ereg関数群は不正な文字エンコーディングをチェックしない
                                                              • 文字エンコーディングの妥当性確認(バリデーション)について - t_komuraの日記

                                                                大垣さんからコメントをいただきましたので、最後に追記しました(2009.09.22)。 少し時間が経ってしまいましたが、以下のページを読んで、PHP に関連する部分について思ったことを書きたいと思います。 http://blog.ohgaki.net/char_encoding_must_be_validated http://blog.ohgaki.net/is-char-encoding-problem-difficult 私の理解が間違っていなければ、「Web アプリケーションで文字エンコーディングに関連する問題を無くす」ことを目的として、全ての Web アプリケーション開発者が以下を実行しようという主張だと思います。 全ての入力文字列の文字エンコーディングの妥当性を確認する 文字エンコーディングを厳格に取り扱う データベースなどで「バイナリ」に近い文字エンコーディングは利用しない

                                                                  文字エンコーディングの妥当性確認(バリデーション)について - t_komuraの日記
                                                                • HFS+のテキストエンコーディング – ものかの

                                                                  HFS+はファイルやフォルダなどのアイテム名をどのテキストエンコーディングで扱っているのでしょうか? Appleは最近までこの情報をドキュメントに記載して公開していたのですが、今はしていません(2016年10月現在)。それでも第三者によるアーカイブがかろうじて残っており、典拠として貴重なのでここに記録しておきます。 2009年時点のFile Systems and Unicode Support 追記:いつのまにかリンク切れしていました。キャプチャを貼っておいてよかった…。 見ての通りUTF-16ですね。インターネット上ではUTF-8-MACであるとの説明が散見されますが間違いです。 HFS+のUnicode正規化形式 Unicode正規化形式はUAX#15で4種類が正式に決められています。HFS+はそのうちのNFDをさらにAppleが改変した特殊な正規化形式を実装しています。アイテム名は

                                                                    HFS+のテキストエンコーディング – ものかの
                                                                  • ドラッグ&ドロップだけで動画をエンコーディングできる「EncodeHD」 | ライフハッカー・ジャパン

                                                                    デスク配線がスッキリ。Ankerの全部入り12 in 1モニタースタンドが突然8,250円OFFされてた #Amazonセール

                                                                      ドラッグ&ドロップだけで動画をエンコーディングできる「EncodeHD」 | ライフハッカー・ジャパン
                                                                    • 文字エンコーディングが仲間外れのファイルを素早く見つける方法

                                                                      プロジェクトに多人数が参加するようになると、なぜかプロジェクトの標準とは異なる文字エンコーディングのファイルがcommitされていることがあります。UTF-8で統一しているはずなのにShift_JISのファイルがある、なんて場合ですね。そこでメンバーの注意力不足を指摘したり、「だから***(自分の使っていないエディタの名前を入れてください)はダメなんだ」とかいう宗教論争に発展させたりというのでは不毛ですよね。簡単に気づく方法があればそれでいいんですよ。 方法は色々あると思いますが、今日はどこのご家庭にも必ずあるnkfを使ってみましょう。最近のnkfには--guessというオプションがあり、文字エンコーディングを推測してくれます。 $ nkf --guess hoge*.txt hoge1.txt:EUC-JP (LF) hoge2.txt:UTF-8 (LF) hoge3.txt:B

                                                                      • Masato Kinugawa Security Blog: エンコーディングの切り替えによるSelf-XSSを考える

                                                                        Shift_JISにすると、UTF-8でひらがなの「く」を構成する「0xE3818F」の先頭2バイトが、まず「縺(0xE381)」という文字と解釈され、残った「0x8F」が、後続の、二重引用符のエスケープシーケンスである「\(0x5C)」と1つの文字、「十(0x8F5C)」を作ってしまうのです。これにより、エスケープシーケンスがなくなった二重引用符は、そこで文字列リテラルを閉じることになります。こうして、その後ろに書かれたアラートが動いてしまうという訳です。 つまりこれは、攻撃者に誘導され、ユーザー自身が文字エンコーディングを切り替えた場合、本来XSSがないページでもXSSが起こせる場合があるということです。 IE以外のブラウザは、親フレームのエンコーディングを変更した場合、クロスドメインでも子フレームのエンコーディングまで変更するので、こんな誘導の仕方もできます。 http://l0.c

                                                                        • PHP5.3.6からPDOの文字エンコーディング指定が可能となったがWindows版では不具合(脆弱性)あり - 徳丸浩の日記(2011-03-22)

                                                                          _PHP5.3.6からPDOの文字エンコーディング指定が可能となったがWindows版では不具合(脆弱性)あり PHP5.3.6からPDO/MySQLにてデータベースの接続文字列にて文字エンコーディングが指定可能となりました。この機能を検証した結果、Linux上では正常な動作を確認しました。Windows版でも一見動作するようですが、動的プレースホルダ内部のエスケープ処理に不備があり、Shift_JISでデータベースと接続している際にSQLインジェクション脆弱性の可能性があります。 きっかけ @haruyamaさんのツイートがきっかけで、PHP5.3.6からPDOの文字エンコーディング指定が有効となったことを知りました。 PHP 5.3.6以降では PDO/MySQLのDSNでのcharset指定が有効になったようです. (MySQL 4.1.11以降, MySQL 5.0.7以降, もし

                                                                          • PHP、デフォルトエンコーディングをUTF-8へ (default_charset) | エンタープライズ | マイコミジャーナル

                                                                            PHP: Hypertext Preprocessor PHP開発チームはPHP6におけるUTF-16化を断念。開発ブランチをPHP5.3へロールバックし、これまでに開発した機能をロールバックしたブランチへバックポートするという方針へ変更した。これはPHP6で取り組まれたUTF-16対応実装が予想以上に困難だったためと、UTF-16に移行することで得られる利益よりも不利益が多いことが判明したためだ。PHPにおける文字集合とエンコーディング回りの議論は振り出しに戻った。 しかし、変化は確実に訪れている。Mind the encodings!において「default_charset」がiso-8859-1からUTF-8へ変更されたことが紹介されている。ブラウザはサーバからのデータにエンコーディングの指定がなかった場合、これまではISO-8859-1をデフォルトエンコーディングとしていた。逆にP

                                                                            • MySQL/Rubyにおける正しいエンコーディング変更方法 - しばそんノート

                                                                              MySQLの文字化けを直したい! 発端はSequelを使ってMySQLのデータを操作するRubyスクリプトを書いていたときでした。 UTF-8で保存したはずの文字列が、妙に文字化けしています。 mysqlコマンドでエンコーディングの確認をしてみると、 $ mysql -h host -u user -p database ...(略)... Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> \s -------------- mysql Ver 14.14 Distrib 5.1.30, for portbld-freebsd7.1 (i386) using 5.2 ...(略)... Server characterset: ujis Db characterset: utf8 Client char

                                                                                MySQL/Rubyにおける正しいエンコーディング変更方法 - しばそんノート
                                                                              • vim-jp » ctags にソースコードのエンコーディングを指定出来るオプションが追加されました。

                                                                                Vim 使いの方であればほぼ皆さん ctags をご存じだと思います。ctags はソースコードを解析して tags ファイルを生成します。テキストエディタはこの tags ファイルを使用して名称から定義位置にジャンプ(タグジャンプと呼ばれます)出来る様になります。 多くのテキストエディタがこのタグジャンプを実装しています。ctags は元々、Vim のリポジトリ内に存在しました。その後別のリポジトリに切り出され現在に至ります。こういった経緯から Vim と ctags は切っても切れない関係にあります。 Vim はタグジャンプを使いこなせて一人前、いやタグジャンプが使えない Vimmer はモグリとまで言われています。(要出典) tags ファイルにはシンボル、定義されているファイル、定義位置、定義されている行の文字列が行毎に書かれています。テキストエディタはシンボル名が与えられると定義

                                                                                  vim-jp » ctags にソースコードのエンコーディングを指定出来るオプションが追加されました。
                                                                                • JavaScriptでJPEGをエンコーディング - TechTalkManiacs

                                                                                  Ajaxianより。JavaScriptでJPEGエンコーディングを試してみた人がいました。JavaScriptは基本的にインタプリタなのに関わらず、コンパイラであるActionScriptと比べてそれほど遅くない結果になっています。 方法は Canvasタグ(参考)をHTMLに作ってそこにJPEGファイルを取り込むことでデコード 2次元配列にいったん変換して再エンコード コードそのものはActionScriptのライブラリをJavaScriptに変換。 高速化のためにWebWorkers(スレッドプログラミングができるHTML5のAPI)による並列処理も試みたそうです WebWorkersはスレッドセーフのため、データの受け渡しは文字列のみに限られるので以下のような方法を試してみたとのこと。 JSONエンコーディング→デコード 非常に遅い 文字列をデリミタで結合→分割 JSONよりマシ。

                                                                                    JavaScriptでJPEGをエンコーディング - TechTalkManiacs