【PHP】下らねぇ質問はID出して書き込みやがれ 121
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/07/25(水) 21:30:09.38ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 120
http://kohada.2ch.net/test/read.cgi/php/1340275027/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0118nobodyさん
2012/07/28(土) 18:51:32.58ID:3yuInUep私が悪かったです
よかったら教えてください
お願いします!
0119nobodyさん
2012/07/28(土) 18:53:43.17ID:???0120nobodyさん
2012/07/28(土) 18:58:53.72ID:3yuInUep心の中では本当に感謝してます
とりあえず関数化してみますわ
0121nobodyさん
2012/07/28(土) 19:01:27.21ID:???return
↓
header('Location: error.php');
0122nobodyさん
2012/07/28(土) 19:06:33.49ID:3yuInUepえ?
これじゃerror.phpに移動しちゃって下のhtmlは出力されない気が・・
ちょっとやってみます
あざっす!
0123nobodyさん
2012/07/28(土) 19:09:06.12ID:???それか同じスクリプトで後ろに?error=1とかつけて
getで処理わけたり
0124nobodyさん
2012/07/28(土) 19:11:46.01ID:3yuInUepそういえばパラメータも使えましたね
どうもイライラしてると何も思いつかなくって。
本当にありがとうございました
0125nobodyさん
2012/07/28(土) 20:01:23.66ID:???<?php
...
//return
goto end;
...
end:
?>
<!doctype ...
0126nobodyさん
2012/07/28(土) 20:02:05.42ID:KrNBno09画像をアップロードする機能を作りました。
(記事ナンバー).jpg というような 形式で
ファイルがどんどんアップロードされるようにしています。
ここで、ひとつ思ったのが
アドオンのwebDeveloper 等で、hiddenの値を操作することができますが
hidden の値を変えて つまり(記事ナンバー) の値を変えて
本来 01.jpg とアップされるところを 04.jpg 等と自由に変えられて
しまうことはないのか? ということです。
というか実際やってみたら変えれました。
そしてすでにある (記事ナンバー)にすると上書きされてしまいました。
つまり、過去にすでにアップされた画像を
全く別の画像に書き換えれてしまうということです。
この問題に対してなにかしらどのようなセキュリティ対策が考えられるでしょうか?
ちなみに、画像の上書き保存をできないようにするのは
画像を表示する側の仕様上あまりしたくありません。
0127nobodyさん
2012/07/28(土) 20:04:53.62ID:3yuInUepgoto文ってPHP5.4ぐらいからじゃないと使えませんよね?
ったく関数は良いのたくさんあるのにgoto文がいままでなかったってどういうこったよ
まあgoto文はプログラマをダメにすると思うがな
2重ループとかを抜けるときだけ使えばいいけどな
0128nobodyさん
2012/07/28(土) 20:05:48.13ID:???クライアント任せにしないでサーバ側でリネームして下さい
連番にしてどっかに最終番号の情報もっておいて
それに+1した名前をつけるとか
アップロードを受け付けた時点のmicrotimeにsalt加えたものをハッシュ化したものを名前にするとか
0129nobodyさん
2012/07/28(土) 20:15:44.56ID:KrNBno09ということは、保存時のファイル名を<img src="">記述時、
再び呼び出すためにデータベースに保存しないとダメですね。
うーん、やっぱデータベースがいるか。
0131nobodyさん
2012/07/28(土) 20:23:21.57ID:???ちゃんとロックして整合性保たせることだけ注意
>アップロードを受け付けた時点のmicrotimeにsalt加えたものをハッシュ化したものを名前にする
この手法じゃそもそもいらないけどね
サーバ側に同名のファイル名があったら
なんか適当な文字を加えてリネームする
ってのを重複しないまで繰り返すとか
まぁ方法はいろいろあるがとりあえずクライアント任せにはしない
0132nobodyさん
2012/07/28(土) 20:31:56.48ID:KrNBno09回答ありがとうございます。
一応、使用してるフレームワーク(codeigniter)に
同じ名前が存在した場合、上書きを許さない機能がついてるんですが、
そうなると、ハードコーディングじゃなくてで、画像のURLを書きたい場合
どないして呼び出すねん っちゅう話やねん。
なんです。
0133nobodyさん
2012/07/28(土) 20:44:34.80ID:???UUIDを使えばいいだけ。
自分でコード作るな。
>アップロードを受け付けた時点のmicrotimeにsalt加えたものをハッシュ化したものを名前にする
microtimeが同じなら、salt加えてハッシュ化しても
microtimeの値をそのまま使っても同じだろ。
0134nobodyさん
2012/07/28(土) 21:00:52.86ID:KrNBno09回答有り難うございます。
以下のロジックで作成することにしました
画像 アップロード
↓
[アップロード時の、ID]+[microtim].jpg
↓
同時にデータベースにファイル名をインサート
↓
<img src="<?= $row['ファイル名'] ?>"> でよびだし
0136nobodyさん
2012/07/28(土) 21:15:32.99ID:???しばらくおまちください
0137nobodyさん
2012/07/28(土) 21:16:39.27ID:???0138nobodyさん
2012/07/28(土) 21:21:42.94ID:???”パスワード”につけてハッシュ化するもので、
元の値(パスワード)というバレてはいけないものを
バレにくくするためのものですが?
あなたは、なんのためにsaltをつけたんですか?
0139nobodyさん
2012/07/28(土) 21:21:43.32ID:???意味分からん
0142nobodyさん
2012/07/28(土) 21:32:32.49ID:???言葉の定義の話になるとソース合戦になるからな
>>134で解決したし次の質問どぞ
0145nobodyさん
2012/07/28(土) 21:34:35.93ID:???0146nobodyさん
2012/07/28(土) 21:35:26.77ID:???0148nobodyさん
2012/07/28(土) 21:39:19.35ID:???T_PAAMAYIM_NEKUDOTAYIM
発音むずかしすwwww
0149nobodyさん
2012/07/28(土) 21:44:25.99ID:???> しかし、Zend Engine 0.5 (PHP 3のエンジン) を 書いている時に、Zend チームはこう呼ぶと決めたのです。
> この奇妙な名前は、実はダブルコロンを意味するヘブライ語なのです!
さすがPHPわけわからん
0151nobodyさん
2012/07/28(土) 21:46:23.48ID:???0152nobodyさん
2012/07/28(土) 21:49:09.49ID:???0154nobodyさん
2012/07/28(土) 21:55:46.98ID:???0155nobodyさん
2012/07/28(土) 22:28:55.89ID:???ttp://kokukuma.blogspot.jp/2011/12/php.html
Mecabってのもあるみたい
0156nobodyさん
2012/07/28(土) 22:38:18.56ID:???0158nobodyさん
2012/07/28(土) 23:20:03.87ID:???0159nobodyさん
2012/07/28(土) 23:20:10.75ID:???゙'' _,,,- ,,,,-‐" |、,,-、゙'ヽ
,,-‐'.、,_| ,.-┴‐─'''""
゙''ヽ‐-、,,,|____ ヽ  ̄''''
""'' ),‐-、 O O ___ ゙l‐、--┬┐
,,,,,,,---、--‐''l|:::::::::\ /::::|l .//_ / ノ -‐''
ヽ/ ゙、 ノヾ、 ''‐.、:::::::\ O O /::::::::::|ll / ゙ヽ|,,-‐'"
\ヽ /'" ゙、 \::::\ /:::./ ̄ /,,, l"~ ,,,-'''"ヽ ,-''"
,-、 ゙"'''ヽ ,-,゙、 ゙ヽ、\:::\ O O ./:/-‐ ./二-゙ヽ‐'"::::::\/ /
゙、::.゙'''''‐┬'"ヽ-、 ゙、 ゙"''ヽ、\::\ | , l //,'"-‐'' ./'" / /.:.:.:.:.:./ /
゙ヽ、, \.:.:.:.:.:゙、 \ ゙、 '''''==-゙''\::ヽ-| | |'''"‐''"~ニ''"~ /-‐'/ /.:.:.:.:.:.:/‐''"
\゙ヽ‐.:.:.:.:.:゙、 ヽ‐-.゙、  ̄''' ゙''''''" ゙",,-‐'" | /.:.:/ /.:.:.:.:.:.:/ /
\\.:.:.:.:.:\ ゙、.:.:.:.゙、 l"','''‐──‐'" _,,/‐"/ // /.:.:.:.:.:.:.:/ /
\\.:.:.:.:.:\ ゙ヽ、.ヽ. ヽ/ヽ‐--┬‐‐'" 〉''/ / ,,-'"::::.:.:.:.:.:// \
/ .゙、\:::::.:.:.:.:゙ヽ、 ゙''゙'ヽ、 ゙、 ,| :: ノ,/,/,,-‐'":::::::.:.:.:.:./:::/
/ ヽ:::::\:::::::::.:.:.:.:.゙''ヽ、 ゙ヽ、 ヽ-----‐''/::::::::::::.:.:.:.:.:.:::;;-''":::::/ \
0160nobodyさん
2012/07/28(土) 23:20:53.56ID:???http://d.hatena.ne.jp/keyword/SALT
2. パスワードハッシュ値を作成する時に、パスワード文字列と
共に用いられる任意の文字列。FreeBSD 標準では 48bit(Redhat Linux では 12bit らし)。
簡単にいえば、「パスワード*SALT=ハッシュ値」ということ。(乱暴かな?)
これによりハッシュ値からパスワードを逆算する手間が
2^SALT ビット倍になるので、SALT が十分大きければほぼ解読は無理といえる。
0161nobodyさん
2012/07/28(土) 23:24:16.77ID:???恥ずかしいの貼っちゃったね
まぁ君のレベルにはぴったりなんじゃないか?
0162nobodyさん
2012/07/28(土) 23:26:07.30ID:???苦笑w
で、反論はしないの?
http://itpro.nikkeibp.co.jp/word/page/10005089/
ソルトと読む。パスワードの暗号化のために使用する「種」。
UNIX系のOS では,/etc/passwdファイルまたは/etc/shadowファイルで
管理している暗号化されたパスワードを,DESをベースとしたcryptライブラリに
よって生成している。cryptライブラリを使用して文字列を暗号化する
場合に必要となるのが,saltと呼ばれる2文字の文字列である。
0163nobodyさん
2012/07/28(土) 23:27:39.36ID:???http://qa.atmarkit.co.jp/q/2121
ソルト(salt)とは、パスワードのハッシュ値を計算する際に、
パスワードの前後に付加する文字列のことです。
ソルトの要件は以下の通りです。
ある程度の長さがあること(20文字以上あればよい)
ユーザ毎に異なる文字列であること
過去の実装では、ソルトとして乱数を用いる場合が多かったのですが、
実際にはソルトに「予測困難性」は要求されないため、乱数が必須ではありません。
ソルトとして、メールアドレスやユーザIDを用いることもできます。
これらでソルトとしての長さが足りない場合は、固定の文字列を追加するとよいでしょう。
0165nobodyさん
2012/07/28(土) 23:31:05.23ID:???これが固定値とは片腹痛いwwwwwwwwwwwwwwwww
0167nobodyさん
2012/07/28(土) 23:36:58.56ID:???0168nobodyさん
2012/07/28(土) 23:39:35.77ID:???0169nobodyさん
2012/07/28(土) 23:52:14.24ID:???0170nobodyさん
2012/07/29(日) 00:05:15.62ID:???0171nobodyさん
2012/07/29(日) 00:19:01.14ID:???0173nobodyさん
2012/07/29(日) 00:38:27.53ID:vJAmmsLG0175nobodyさん
2012/07/29(日) 00:59:19.35ID:LFlFhPeY0176nobodyさん
2012/07/29(日) 01:00:20.75ID:???http://toro.2ch.net/test/read.cgi/tech/1327197884/
0179nobodyさん
2012/07/29(日) 01:13:52.28ID:???そろそろって、この件では初めて書き込んだんだが・・・
>>165が初めてsaltを知ったみたいでイタかったんで
まあsaltの件は終了だな
0180nobodyさん
2012/07/29(日) 01:15:29.42ID:???そのセリフを先に持ちだしたやつに言わないで
本人じゃないって言われても誰が納得するんだw
疑問形ばっか投げてくるやつでわかり易かったよ
0181nobodyさん
2012/07/29(日) 01:22:24.72ID:???0183nobodyさん
2012/07/29(日) 01:31:24.02ID:???>>140
>>141
>>158
>>161
>>165
>>178
>>180
誰が誰だかよく分からんが、
俺の見たところ、こいつらがバカだな
0184nobodyさん
2012/07/29(日) 01:36:21.55ID:???必死杉なんだよwww
年収3000万()ならもっとゆとり持てwww
0185nobodyさん
2012/07/29(日) 01:39:05.71ID:???0187nobodyさん
2012/07/29(日) 01:42:04.77ID:???0188nobodyさん
2012/07/29(日) 01:44:13.39ID:???0189nobodyさん
2012/07/29(日) 01:45:14.91ID:???0190nobodyさん
2012/07/29(日) 01:49:46.57ID:???知らんがな
0192nobodyさん
2012/07/29(日) 05:57:21.28ID:???0193nobodyさん
2012/07/29(日) 13:32:52.94ID:???学生が長い休みに入るといつもこうなるなぁ・・
休み中にちょっとプログラムできるようになりたいなぁとかそんな感じなんだろうか?
0194nobodyさん
2012/07/29(日) 13:39:12.39ID:???0195nobodyさん
2012/07/29(日) 14:16:40.29ID:???0196nobodyさん
2012/07/29(日) 14:30:22.18ID:u30Fvn/Wif($_POST['shine'])
だとfalseで
if(isset($_POST['shine'])
だと真になる
どういうこっちゃ
0197nobodyさん
2012/07/29(日) 14:32:42.15ID:???画像をアップロードする機能を作りました。
(ランダムな値).jpg というような 形式で
ファイルがどんどんアップロードされるようにしています。
ここで、ひとつ思ったのが
アドオンのwebDeveloper 等で、hiddenの値を操作することができますが
hidden の値を変えて つまり(ランダムな値) の値を変えて
本来 11111.jpg とアップされるところを 77777.jpg 等と自由に変えられて
しまうことはないのか? ということです。
というか実際やってみたら変えれました。
そしてすでにある (ランダムな値)にすると上書きされてしまいました。
つまり、過去にすでにアップされた画像を
全く別の画像に書き換えれてしまうということです。
この問題に対してなにかしらどのようなセキュリティ対策が考えられるでしょうか?
ちなみに、画像の上書き保存をできないようにするのは
画像を表示する側の仕様上あまりしたくありません。
0198nobodyさん
2012/07/29(日) 15:01:50.02ID:???0201200
2012/07/29(日) 15:46:58.79ID:???0202nobodyさん
2012/07/29(日) 15:57:44.09ID:???どうせNULLじゃなくてstring(0)になってるってオチだろ?
0203197
2012/07/29(日) 17:48:51.24ID:???ありがとうございました。
0204nobodyさん
2012/07/29(日) 17:50:24.01ID:???セキュリティ以前にまずは完成させろよ
どうせ1日に1個うpされるかされないかのしょぼいシステムしか作れないんだから
0207197
2012/07/29(日) 18:02:44.76ID:???確かにセキュリティ以前の問題です。
上書きをできるようにしたいのか、できてはいけないのか
自分の中でもよく分かっていません。
ごめんちゃい。
0208nobodyさん
2012/07/30(月) 00:44:36.46ID:???根本的におかしくないか?
0209nobodyさん
2012/07/30(月) 02:04:06.10ID:???0210nobodyさん
2012/07/30(月) 03:06:53.08ID:???02111/2
2012/07/30(月) 03:16:28.26ID:pYaoDqEk$edt = $_REQUEST["edt"];
$list = fopen('data.csv','r');
$h = 0;
while ($array = fgetcsv($list, 1000,",")) {
for ($i = 0; $i < count($array); $i++){
$newarray[$h][$i] = $array[$i];
}
$h++;
}
$item_list = explode(",", $data[0]);
echo $edt;
echo $newarray[$edt][0];
echo "<tr>\n";
echo "<td>ID</td>\n";
$newarray[$edt][0] = str_replace("\n", "", $newarray[$edt][0]);
$newarray[$edt][0] = str_replace("\r", "", $newarray[$edt][0]);
echo "<td><input size=\"50\" type=\"text\" name=\"k_0\" value=\"" . $newarray[$edt][0] . "\"></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>" . $item_list[0] . "</td>\n";
$newarray[$edt][1] = str_replace("\n", "", $newarray[$edt][1]);
$newarray[$edt][1] = str_replace("\r", "", $newarray[$edt][1]);
echo "<td><input size=\"50\" type=\"text\" name=\"k_1\" value=\"" . $newarray[$edt][1] . "\"></td>\n";
echo "</tr>\n";
?>
02122/2
2012/07/30(月) 03:17:56.10ID:pYaoDqEk1,aiueo
2,kakiku
csvファイルからデータを取り出して、inputに値を表示しようとしています
「echo $edt;」では正しいパラメータの数値が表示されます
ですが「echo $newarray[$edt][0];」ではおかしな数値が表示されます
なぜでしょうか?ご指摘お願いします
0213nobodyさん
2012/07/30(月) 03:31:43.04ID:???この時点で$dataなんて変数ないんだけど
0214nobodyさん
2012/07/30(月) 03:45:06.58ID:pYaoDqEk<?php
$edt = $_REQUEST["edt"];
$list = fopen('data.csv','r');
$h = 0;
while ($array = fgetcsv($list, 1000,",")) {
for ($i = 0; $i < count($array); $i++){
$newarray[$h][$i] = $array[$i];
}
$h++;
}
echo $edt;
echo $newarray[$edt][0];
echo "<tr>\n";
echo "<td>ID</td>\n";
$newarray[$edt][0] = str_replace("\n", "", $newarray[$edt][0]);
$newarray[$edt][0] = str_replace("\r", "", $newarray[$edt][0]);
echo "<td><input size=\"50\" type=\"text\" name=\"k_0\" value=\"" . $newarray[$edt][0] . "\"></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>Main</td>\n";
$newarray[$edt][1] = str_replace("\n", "", $newarray[$edt][1]);
$newarray[$edt][1] = str_replace("\r", "", $newarray[$edt][1]);
echo "<td><input size=\"50\" type=\"text\" name=\"k_1\" value=\"" . $newarray[$edt][1] . "\"></td>\n";
echo "</tr>\n";
?>
0215nobodyさん
2012/07/30(月) 04:53:50.81ID:???具体的にここには何が入るの?
var_dumpした値は?
0216nobodyさん
2012/07/30(月) 06:06:58.63ID:???tp://hoge.com/214.php?edt=0
01<tr>
<td>ID</td>
<td><input size="50" type="text" name="k_0" value="1"></td>
</tr>
<tr>
<td>Main</td>
<td><input size="50" type="text" name="k_1" value="aiueo"></td>
</tr>
0217nobodyさん
2012/07/30(月) 10:50:57.16ID:pYaoDqEk$hoge = $edt -1;
を入れてやってみたらできました!
ありがとうございます
「$edt = $_REQUEST["edt"];」には数字が入ります
var_dumpについてはちょっとよくわからなかったので調べます
ありがとうございました
0218nobodyさん
2012/07/30(月) 13:09:45.02ID:1DPpssnZ■ このスレッドは過去ログ倉庫に格納されています