![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
今現在、register_globalsがデフォルトでOFFだ
というのは知っていますが、
実際にONを前提に書いている人、私も含めて多いと思いますが、
どうやって代替させるのかを
具体的に書いているサイトを知っていましたら、
教えて下さい。
色々なサイトを見ても、問題点は書いているけど、
代替方法があまり書いていないので、
どうすればいいのかよく分からず、
OFFに切り替えたいけど、
出来ない状態でいます
($_POST["***"]等を使うのは見ますが)。
hiddenを使うのは推奨されないということでしょうか?
値の引き渡しをしないで、
どうやって処理させるのか、
リンクで直接パラメーターを書くのも推奨されないと
いうことでしょうか?
例: http://www.***.jp/index.php?***=**&***=1
是非ともご回答をお待ちしています。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
register_globalがONの場合、ファイルをWebサーバにアップロードする許可をとりつけた攻撃者によってPHP"GLOBALS"配列を上書きされてしまったりするので、任意のPHPコードが使われてるようなセキュリティホールも指摘されています。
セキュリティの関係上、デフォルトOFFです。ONを前提に書いたプログラムの変更には、extract関数が有効です。
extract($_POST);
とか、
extract($_GET);
とすれば、$_POST[aaa] は $aaa へ展開され、そのまま変数に入ります。
extractではなく、理想的には、$aaa => $_POST[aaa] というような置換をする方がいいと思います。また、この事で、PHPでは変数に宣言がいらないので、外部からのパラメータなのか、内部変数なのかも判りやすくなるので、後々メンテナンスが楽なります。
> hiddenを使うのは推奨されないということでしょうか?
ここではあまり関係ありませんね。使ってもかまわないと思います。ただ、クラッカーに判りやすいようなデータ構造になっているとセキュリティ上問題です(hiddenの変数を改変すれば別ユーザのデータにアクセス出来てしまったり。。。)。
> リンクで直接パラメーターを書くのも推奨されないということでしょうか?
これもそんな事はありません。
No.2
- 回答日時:
がると申します。
んっと…とりあえず。もしお仕事でなさっているなら何はともあれ。個人であっても可能なかぎり「ONを前提に書いている」のはお避けになるのが賢明かと思われます。
情報の取得には、PHPでいうところの「スーパーグローバル変数」を用います。
$_GETまたは$_POSTですね。
URLパラメタならGETのほうで取得が可能です。
ただ、情報の引継ぎは、hiddenではなく、セッション変数を用いられたほうがよろしいと思います。
セッション変数については…個人なら「使わない」のも手です。お仕事でなさっているのであれば、きちんと相応の書籍などをあたり、学ばれることをお勧めいたします。
No.1
- 回答日時:
渡したい引数を羅列してください。
$hoge=$_REQUEST["hoge"];
どうしてもめんどうならスクリプトの頭に
こんなのを書けば、パラメータを全て設定することになりますが
register_globalsがoffになっている理由を考えればやるべきでは
ありません。
foreach ($_REQUEST as $key => $val){
$$key=$val;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 扇風機・冷風機・サーキュレーター スマートプラグで最近の扇風機は操作できない? 5 2022/11/04 13:37
- 事件・犯罪 刑法についてだれか助けてください。 2 2022/06/05 04:08
- 事件・犯罪 刑法についてです 2 2022/06/04 03:11
- 輸入車 ニュービートルカブリオレ6速AT変速操作不良について 4 2022/12/27 23:59
- マウス・キーボード マウスの電池消耗について 9 2022/10/21 20:22
- その他(ソフトウェア) F-BASICで計算中の実行が中途で勝手に止まり、大変困っています。 2 2023/03/02 16:15
- Windows 10 Windows Defender real time保護のオン、オフをPowerShellのバッチで 1 2023/03/10 23:54
- Excel(エクセル) エクセルの罫線が印刷できない 4 2023/02/04 10:48
- ASP・SaaS イントラネットを構築したい 2 2022/04/24 11:08
- PHP ログイン機の付きの掲示板サイトを作りたいです。 2 2022/10/09 04:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ブラウザを閉じた後もセッショ...
-
ログイン画面をはさんだ後、自...
-
PHPSESSIDについて
-
URLのパラメータをGETのままで...
-
$_SESSIONと、POSTやGETの違い
-
「取得先」という表現について
-
Dosブロンプトでtabを出力したい
-
wordの差し込み印刷で文字...
-
DTOとEntityの差は何ですか。
-
excel access連携 このテーブル...
-
【C#】DataGridViewの最大列数...
-
phpでcookieがうまく保存されない
-
小数点以下0の非表示
-
format関数について
-
Excel VBA:特定の文字列以降(...
-
ミュージックのアートワークを...
-
バッチファイルでpingの結果を...
-
1ヶ月後の日付を出力したい
-
WordでExcelデータを差込...
-
switch()文で値の大小比較
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
URLのパラメータをGETのままで...
-
PHPのセッション有効期限について
-
セッション変数にパスワードを...
-
複数のサーバで運営する場合の...
-
ログインしたら他からログイン...
-
ブラウザを閉じた後もセッショ...
-
セッションを維持したまま、サ...
-
PHP SESSION変数を複数使用でき...
-
session_start()で生成されるセ...
-
HTTPヘッダー内での順番などに...
-
「ログイン機能を持たせる」説...
-
session_regenerate_id
-
Sessionの上限について
-
初歩的な質問 セッション管理に...
-
$_SESSIONと、POSTやGETの違い
-
ログイン画面をはさんだ後、自...
-
セッション変数の命名規則
-
複数ページでセッションを使わ...
-
セッション ID とセッション名...
-
セッションのスコープ(有効範...
おすすめ情報