電子書籍の厳選無料作品が豊富!

mysqlにフォームから送られてきたurlを保存しようと思います

そのままだとセキュリティ的にまずいですよね?phpでurlのチェックをする方法はありますか?

$hogeにpostされたurlを受け取ってあります

varchar(255)のカラムに保存しようと思うのですが255文字超えた文字は登録されないから、文字数制限は必要ないですよね?

A 回答 (2件)

> phpでurlのチェックをする方法



正規表現でチェックする方法もありますが、filter_var() 関数を使うと良いです。
https://www.google.co.jp/search?q=php+filter+url


> mysql_real_escape_string()

mysql_xxx ではなく mysqli_xxx 系の関数を使った方が良いです。
即ち、mysql_real_escape_string() ではなく mysqli_real_escape_string(); ですね。
※もちろん、他の mysql_xxx と書いているコードも修正する必要があります。

書籍やサイト上では、未だに mysql_xxx 系の関数が使われている古いコードが散見されますが、参考にしない方が良いです。MySQLなら、mysqli_xxx か PDO を使い、プリペアドステートメントを使っているコードを参考にしましょう。
https://www.google.co.jp/search?q=php+%E3%83%97% …


> 文字数制限は必要ないですよね?

最初は面倒かもしれませんが、外部から来るデータは、文字数の長さ,正当性等、丁寧にチェックする「癖」を付けておいた方がいいですよ。
    • good
    • 0
この回答へのお礼

お答え頂きありがとうございます
urlチェックできました
mysqliに書き換えることにしました
地道にチェックしていきます
ありがとうございました(_ _

お礼日時:2013/06/06 22:52

>セキュリティ的にまずい



プリペアード処理や、エスケープ処理がかかっていれば問題ないです
どちらかといえば集計のためurlを分解したい希望は別途でてくるかもしれません

>255文字超えた文字は登録されないから、文字数制限は必要ない

意味がよくわからない
パラメータが途中できれても問題ないと認識しているならそれでも構いませんが
ユーザーは平気で想定外のデータをおくってきますよ
    • good
    • 0
この回答へのお礼

お答え頂きありがとうございます
mysql_real_escape_string()で受け取っています
簡単なurlかどうかのチェック方法でいいのでお願いします(_ _

文字数の設定は自分できました。失礼しました

お礼日時:2013/06/06 11:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!