例えば、MYSQLに関連する処理をrequire_once()
等で外部から呼び出しをすることが考えられます。
php
1//index.php 2require_once("pdo.php") 3 4 try { 5 $stmt = $pdo->prepare('SELECT * from sample_table WHERE p_id = :page_id'); 6 $stmt->bindValue(':page_id', 1, PDO::PARAM_INT); 7 $stmt->execute(); 8 $result = $stmt->fetchall(PDO::FETCH_ASSOC); 9 } catch (PDOException $e) { 10 throw $e; 11 } 12//$resultを利用した処理を実装 13
php
1//pdo.php 2 $dsn ='mysql:dbname=sample;host=localhost'; 3 $user="root"; 4 $pass="root"; 5 $pdo = new PDO($dsn,$user,$pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET CHARACTER SET `utf8`')); 6 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
これらのファイルをサーバーに設置する際に、例えば同じディレクトリに存在するとします。
そうするとユーザーからはhttps://xxx/xxx/pdo.phpには直接アクセスすることができてしまいます。本処理自体は直接アクセスされても何か実害があるわけではないですが、できればアクセスして欲しくないファイルとなります。
例えば、アクセス制限をサーバー上かけかけたりすることが考えられますが、場合によってrequire_once()でも参照することができなくなることもあると思います。
通常は、.htaccess
ファイルなどで、アクセス制限や参照制限を実装するのでしょうか。根本的なアプローチがわからず、もしかしたらサーバー次第であったりするのかもしれませんが、もし一般的な考え方等があれば教えてくださいますとありがたいです。
よろしくお願い申し上げます。
回答3件
あなたの回答
tips
プレビュー