元スレくだすれPHP(超初心者用)5
php覧 / PC版 /みんなの評価 : ○
751 = :
さらに追記です。うざくてすいません・・・
header Locationで飛ばさずに、aタグを使って間にワンクッション置く(クリックさせる)と正常に動作します。
どのみち、その先でまたheaderで飛ばすところで駄目なんですが・・・。
752 = :
>>749-751
> softbankの実機のみページが飛ばずに「このページは開けません」みたいなエラーが出ます。
このときの、サーバーに残るアクセスログは?
んで、Locationで指定しているURLはドメイン込のフルパスで書いてるよね?
754 = :
人力検索(笑)
http://www2.developers.softbankmobile.co.jp/dp/tool_dl/download.php?docid=119
これの、143ページ
756 = :
302はLocationヘッダーを飛ばした時のログでしょう。
その直後に正しいリクエストが来てるかどうか。
757 = :
同じリクエストを数回繰り返しているだけでした。
758 = :
>754
PDFの資料、大変役に立ちました。
locationで指定しているアドレスを相対から絶対にしたところ、動作しました。
ありがとうございました。
でも、他の部分では相対にもかかわらず正常動作しているんですけどね・・・。
やはり携帯サイトは難しいです。
759 = :
RFCだと絶対URL(absoluteURI)になってますね
rfc2616の14.30 Location
原文
http://tools.ietf.org/html/rfc2616
和訳
http://www5b.biglobe.ne.jp/~type-aya/rfc/rfc2616j.txt
http://www.studyinghttp.net/cgi-bin/rfc.cgi?2616#Sec14.30
ソフバンの方が厳密に仕様に沿っているんでしょう
760 = :
URLでファイル名やディレクトリを暗号(?)のようにするのはどうやって
いるのでしょうか?
例えば、認証するサイトでパスワード変更の時、応答メールで、
http://hoge.co.jp/mail/CSDFG365
へアクセスをすれば作業完了という場合の、CSDFG365や
ダウンローダーでttp://hoge.co.jp/download/CSDFG365にアクセス
すると、別名のファイル名が保存できる機能が、どう実装されているのか
知りたいのです。検索キーワードが悪いのか、ファイルの暗号化ソフト
ばかりヒットして解らずにいます。
どなたか教えてください。
761 = :
それをキーにしてどっかから引っ張ってきてるのでは?
762 = :
>>760
暗号ではなくユニークキー
763 = :
前者は
アカウント情報とそのキーを一緒にDBかなんかに突っ込んでおく
アクセスがあったらアカウントを有効にしてそのキーを削除する
とやってるだけ。
その文字列とあなたのアカウントIDやメールアドレスに直接の関係(例えば、メールアドレスを「暗号化」するとその文字列になるとか)
はないと思うし、むしろあったら設計として不味い。
後者も、文字列と実際のファイル名なりデータなりを関連付けるDBを保持しているだけ。
ダウンロードさせるファイルの名前はヘッダで指定できる。Content-Dispositionでぐぐれ。
764 = :
質問です。
皆さん、日記やブログを作るときどのような感じでスクリプトを組んでいますか?
例えばhtml文字をエスケープして、マジッククォートを取り除いて…といった形で教えてくださるといいんですが。
765 = :
ぐぐれよ
766 = :
>760
mod_rewriteを使ってるんだろうね。
769 = :
みなさんありがとうございます。
パラメータをディレクトリとしていたんですね。
mod_rewriteを使って解釈しないといけないので、ズレていないと思いますよ。
使わずにすむ方法は思いつかないんですが・・・。
助かりました。ありがとうございました。
770 = :
連続ですみません。もう一つ関連(?)でわからないことがありまして。
ダウンローダーとか、宅ファイル便とかだとファイルの公開日というのが
指定できるのですが、その指定した日時まで公開というのはどう実装するので
しょうか。ユニークキーと期日を保存して、その期日にユニークキーを
削除すると思うのですが、「その期日」に動作される方法が解らないのです。
教えて君ですみませんが、どなたかアドバイスください。お願いします。
771 = :
すみません。
×「その期日」に動作される方法
○「その期日」に動作させる方法
でした。何卒よろしくお願いします。
772 = :
クラックとかでもなければDB内の改竄はできない気もするんですが
データを信用するなとのことなので出力時にhtmlspecialcharsを挟んでます
しかし装飾系のタグが使いたいので以下のようにしてみました
問題ありますか?
$str = "@<b@>強調@</b@>@<span class=@”red@”@>赤色@</span@>"; //DBから取得したデータ
echo str_replace(array("@<","@>","@”"), array("<",">","\""), htmlspecialchars( $str, ENT_QUOTES, "UTF-8" ));
検索文字はすべて全角、上はあくまでサンプルで実際の検索文字は違います
773 = :
>>770
ファイルそのものを削除するならcronなんかを走らせておくのでしょうが、
ファイルを直接DLではなくCGI/PHP経由でのみDL許可にすれば
期日後はユニークIDをDBから取り出せなくするだけで実現できるのでは?
774 = :
>>772
閉じタグ打たなかったら、ページの最後まで
適用されてしまうんでない?
<h1>おはよう
↑こんなの。ひろゆきがあめぞうを
つぶしたときに、「スタイルシート破壊攻撃」というのを
使ったのだ。「あめぞうウイルス」でググるとわかる。
775 = :
>>773
アドバイスありがとうございます。
その期日後にPHPを起動(?)させる方法を知りたいのです。
だれもその期日(後)にPHPにアクセスしなければ、PHPは動作しないので。
あっ誰かがアクセスする時に、期限のチェックをすれば済む話ですね。
なんか自動的に削除処理しなきゃと思い込んでました。
超初心者ということで許してください。ありがとうございました。
778 = :
>772
scriptタグを埋め込まれると、ページ内の全表示内容、クッキーを外部のURLに送信される可能性がある。
onloadなどのJavaScriptを実行されるものは全て同じ。
多くのシステムがタグを回避するのはこの脆弱性対策のため。
imageタグによる画像貼り付けや、objectタグによるFlash貼り付けなど、考慮しないといけない事は山のようにある。
脆弱性対策ってのは、猿真似してりゃいいってもんじゃない。
「何故」HTMLタグに警戒しないといけないのかを理解し、適切な対策を自分で考える必要がある。
勘違いするといけないのではっきり言うが、その処理を挟んでもセキュリティは一切向上しない。無駄だ。
781 = :
500円
782 = :
うちなら400円で良いよ
783 = :
おぉぉそんなものなの?作ってください!!!
ブラウザーアドベンチャーゲームなんだけど。
300行分を10本ね
連絡先 adobentya@hotmail.com
784 = :
コメント行3万行入れて4万円上乗せするけどいいか?
785 = :
だめぽorz
786 = :
すみませんが質問させてください。
入場者名と退場者名を同じ1ページ内で、上下のスパン(上半分が入場者名、下半分が退場者名)
にしてPDF出力したいと考えています。
プログラムはそれぞれ"nyuujyou.php"、"taijyou.php"が用意されています。
このように別々のプログラムの結果を、同じページ内でPDFで同時に表示させることはできますか?
共通の変数は日付$ymdだけです。
787 = :
>786
入場.php、退場.phpを、出力結果をechoするのではなく、出力結果を文字列として返す関数に書き直すのが正しい道。
こういう事は非常によくあるので、「出力結果を組み立てる」部分と「書き出す」部分は明確に分けたほうがいい。
「入場者名や属性の配列をDBから取ってくる部分」→「それを使ってHTML文字列を組み立てる部分」→「それを受け取って書き出す部分」
の三段階に分けると使い回しが効く。ロジックの殆どは最初の部分に来て、変更が多いのは簡単な後半だからな。
例えばCSVでファイルに書き出したい場合、最初の難しい部分にはノータッチで後ろの2つだけ書き換えればよくなる。
前から順に「モデル」「ビュー」「コントロール(の一部だが)」層と呼ぶ。
で、レシピだが。
<?php
$ymd = '2009/02/21';
ob_start();
require_once("入場.php");
$result1 = ob_get_flush();
ob_start();
require_once("退場.php");
$result2 = ob_get_flush();
でresult1、$result2に両phpの実行結果が文字列として入る。PDF変換はライブラリを自分で漁れ。
788 = :
>787
わかりました、丁寧にありがとうございました。
789 = :
>>778
厳しいご意見どうも
前段に関してはセキュリティ関連のサイトとか見てるんで
scriptを仕込まれてとかはまあ理解してます(というかこんなことがあると把握してる程度というか)。
その上で>>772が全くの無駄となるとhtmlspecialcharsが意味を成さないんでしょうか
それとも関数の後に置換をしてるからダメになるんでしょうか。
これで100%対策してるとはもともと思ってませんが、htmlspecialcharsで
ある程度の対策になるという考えは間違ってるでしょうか。
>>772も置換パターンが読まれたらアウトですが、どういった部分がだめなのか1例だけでも
教えてもらえないでしょうか。
790 = :
@<b onmouseover=@"怪しい処理@" @>ボールドだよ@</b@>
自信ないけど、こんなの入れたらどうなるでしょうか。
791 = :
>>790
つまり789の最後に言ってるように@<が<に変換されるのが
ばれているということが前提ですか?
ならば置換を行わずにhtmlspecialcharsのみなら問題ないということでしょうか。
当初の一部タグを有効にしたいというのはとりあえず置いときますが。
792 = :
>>791
一部のタグだけ有効にしたいというのならstrip_tagsでいいでしょ
793 = :
出力時に htmlspecialchars を挟むのは間違えてない。
万一、SQLインジェクションされて、不正なデータを注入されても htmlspecialchars が出力時に噛ませてあればほんの少しダメージを軽減できる。
# まぁ、SQLインジェクションが起こった時点でいろいろ見直すべきだと思うけど。
装飾のタグが使えるのは素敵な機能だと思うけど、自力で組むのは難しいんじゃなかろうか。
自分ではどんなに完全だ、と思ってても意外なところに穴があったりするし。
ここで「大丈夫でしょうか?」って聞くくらいならば、そんなものは実装しないのが一番。
少なくとも str_replace() とかの単純な手法で実装できるような機能ではないと思う。
置換パターンが読まれてなければ云々については、
攻撃するときは攻撃者はいろんなパターンの文字列をスクリプトに投げてみて、置換や変換のルールを推測した上で攻撃するんだろうから、
あんまり考える意味がない。
794 = :
strip_tags
http://phpspot.net/php/man/php/function.strip-tags.html
この関数は、allowable_tagsで許可した全てのタグ の属性を修整しません。
これには、style お よび onmouseover属性が含まれており、悪意のあるユーザが他のユーザに見せるようなテキストを投稿する際に危険な行為を行う可能性があります。
795 = :
ありがとうございます。
ちょっと忙しくなったので夜に反応します。
796 = :
>>783
設計はすでにできていてあとはコードを書くだけ?
それなら設計の読み方わかるニートがやってくれるかもね
普通の人に頼むならまぁ無理だと思ったほうがいいわ
時給換算して300行400円はわりにあわない
10分で300行かけるような超人がいたとしたら
人の○倍仕事量こなすから○倍よこせってなるのでますます無理
設計書くなら値段は跳ね上がるから設計書いらないっていうのが
PHPクライアントなわけだけど
それだとお金にならないからスルーするというのが業界の流れ
799 = :
マルチは地獄に落ちろ
800 = :
はわわ
みんなの評価 : ○
類似してるかもしれないスレッド
- くだすれPHP(超初心者用)4 (1001) - [97%] - 2008/11/21 17:19 ○
- くだすれPHP(超初心者用)6 (958) - [97%] - 2009/8/19 4:11 ○
- くだすれPHP(超初心者用)3 (1001) - [97%] - 2008/6/8 6:35 ☆
- さっさとPHP5.0.6出せよ糞Zend (80) - [31%] - 2019/5/9 7:45
トップメニューへ / →のくす牧場書庫について