[過去ログ]
【PHP】下らねぇ質問はここに書き込みやがれ 12 (1002レス)
【PHP】下らねぇ質問はここに書き込みやがれ 12 http://mevius.5ch.net/test/read.cgi/tech/1619667579/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
485: デフォルトの名無しさん (アウアウクー MM05-KMlg) [] 2021/07/26(月) 20:20:23.98 ID:BzqZLuZJM 1つ聞きたいんですが画像ファイルのセキュリティについてです。 自分の調べた聞いて理解した範囲では画像を<img src="画像URL">で表示するのは、 画像を表示するためにそのURLにアクセスできるので危険 ↓ 画像をbase64にエンコードします デコード(複合化)もできるので意味がほぼないです ↓ サイズとMIMEチェックをして画像を表示させる前に、画像ファイルである事を確認する 必要ならサイズやビット深度を変更する https://teratail.com/questions/350744で聞くと, ファイルをアップロードするのは「サイト運営側」だけであれば問題ありません。 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13246474913で聞くと、 mineチェックとサイズ変更しなさい、 できればアップロード時のファイル名を元のものから変更する、自サイトのページ内に配置された画像としてしかアクセスを禁止するなどしなさい 結局どれが正解なんでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1619667579/485
486: デフォルトの名無しさん (ワッチョイ 8bbb-OwHR) [sage] 2021/07/26(月) 20:26:04.88 ID:B9v6ZV500 >>485 どのようなリソースをどのような攻撃から守るかの仕様が提示されない以上正解はありません セキュリティポリシーやセキュリティ設計から見直してください 実装を決めるのはその後です http://mevius.5ch.net/test/read.cgi/tech/1619667579/486
487: デフォルトの名無しさん (ワッチョイ 1302-/zz1) [sage] 2021/07/26(月) 20:31:09.20 ID:7+uo32oc0 >>453 >>485 お前のやりたいことはWordpressの管理画面からアップした画像の表示だろ そんなもんのセキュリティ気にして変換する奴なんていねーよ つーかWPスレ池 http://mevius.5ch.net/test/read.cgi/tech/1619667579/487
499: デフォルトの名無しさん (ワッチョイ 7bad-USot) [sage] 2021/07/27(火) 08:14:32.01 ID:SyBbAbx40 質問は>>485であってwordpress関係ないだろ >>487が勝手にwordpressだって決めつけてる 質問も意味不明だけどね、何を聞きたいのか簡潔にしてほしい > つーかWPスレ池 お前がいけよw http://mevius.5ch.net/test/read.cgi/tech/1619667579/499
504: デフォルトの名無しさん (ワッチョイ 7108-8Xcr) [sage] 2021/07/28(水) 10:44:10.50 ID:5Wbud5da0 >>485 関連レスをザッとだけ読んだけど、スレ回答者の中にもおかしな事を言ってるやつはわりといる いちいち指摘してたらキリないから割愛するが、スレ回答者の皆が実務経験豊富なプロってわけじゃないからなぁ… でもお前さんも、自分が「思い込みが激しくて頭が固いタイプ」だって事は自覚しよう rssの質問のときも、print_r($rss); とするだけで理解できる筈の事を理解できず、質問を繰り返してたでしょ? だからスレが荒れるんだよ? 分かる? http://mevius.5ch.net/test/read.cgi/tech/1619667579/504
505: デフォルトの名無しさん (ワッチョイ 7108-8Xcr) [sage] 2021/07/28(水) 10:44:53.11 ID:5Wbud5da0 >>485 で、元の質問は>>453でしょ? 画像を出力するコードの中にHTMLを出力すれば、意図した結果にならないのは当たり前 普通は「画像出力専用のPHP」を用意してこうやる <img src="output_image.php?id=12345"> そして「HTMLを出力するPHP」の中で下記のようにすればいいだけ <html> <body> <img src="output_image.php?id=12345"> </body> こういう発想ができないのは、頭が固い証拠 どうしても1つのPHPファイルの中で、画像の出力とHTMLの出力とを同時に行いたい場合はこうする echo '<img src="data:image/jpeg;base64,' . base64_encode(file_get_contents('img/abc/123.jpg')) . '">'; 要するに、画像(バイナリデータ)をbase64でエンコードし「文字列(テキストデータ)として出力」すればいい(インラインイメージと呼ぶ) これに「セキュリティ的な意味はほぼない」ので、勘違いしないよう インラインイメージで画像を出すかどうか?ってだけ まぁこんな事をやってもメリットなんか無いから、普通は「画像出力専用のPHP」を用意する http://mevius.5ch.net/test/read.cgi/tech/1619667579/505
506: デフォルトの名無しさん (ワッチョイ 7108-8Xcr) [sage] 2021/07/28(水) 10:46:52.30 ID:5Wbud5da0 >>485 >>505に書いたoutput_image.phpの仕様がもし output_image.php?path=img/abc/123.jpg のように、画像のパスを渡したらその内容をそのまま表示するとなっていた場合、「パストラバーサル」と呼ばれる脆弱性が発生する危険性がある 例えば、pathの値が「img/../../../secret.txt」だった場合、意図せずsecret.txtの中身が第三者に読まれてしまうって事ね だから、そうならないようpathの値をしっかりチェックしないといけないのだけど、一連の質問を見ている感じ、あなたにそれを自前でやるのは無理だと思う なので、「ファイルパスを渡す」のではなく、最初の例のように「画像を識別できるIDを渡す」ようにすればいい ※?path= で値を受け取るPHPをインターネット上に公開し、ログを取ってみるといい ※笑うぐらい攻撃があちこちから飛んでくるのが確認できるから http://mevius.5ch.net/test/read.cgi/tech/1619667579/506
507: デフォルトの名無しさん (ワッチョイ 7108-8Xcr) [sage] 2021/07/28(水) 10:50:19.40 ID:5Wbud5da0 >>485 最後に アップロード処理が管理者にしかできない = 第三者に変なファイルをアップされる心配がないのであれば、 <img src="img/abc/123.jpg"> で別にええのよw img/abc/123.jpg というファイルパスを第三者に知られたくないなら、>>505の例のように「間にPHPをかまして出力」すれば良いってだけ 逆に、第三者に変なファイルをアップされる心配があるのであれば、「アップロード処理の際に(出力の時ではなく)」厳密なチェック処理をしないとダメ それについては、>>466さんも紹介してくれている https://qiita.com/mpyw/items/939964377766a54d4682 を読めばいい ・第三者が自由にファイルがアップロードできる ・アップロード処理の際に上記のようなチェック処理ができてない ・アップロードされたファイルへ第三者がアクセスできる 3つの条件を満たしているとセキュリティ的にヤバいよねってだけ 例えば、「任意のファイルを自由に読み書きできるPHPファイル」をアップロードしそれがそのまま実行できたらヤバいでしょ? 分かる? http://mevius.5ch.net/test/read.cgi/tech/1619667579/507
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.029s