私はPHPとSQLの初心者です。私は簡単なブログを作っています。私はあなたがブログを投稿するindex.phpとブログ投稿を表示するblog.phpを持っています。 blog.phpの各ブログ投稿の下に編集リンクを追加したいと思っています。この編集リンクをクリックすると、別のページでブログを編集できます。私はフレームワークを使用せずに、これを行う最も安全な方法が何であるか疑問に思っています。ここblog.php上のコードは次のとおりです。ブログ投稿を安全に編集する
<?php include("session_start.php")?>
<?php
$sql = "SELECT * FROM posts WHERE user_name='$user_name' ORDER BY post_date DESC";
$result = mysqli_query($connection, $sql) or die(mysqli_error($connection));
?>
<html>
<head>
<title>Blog</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" >
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" >
<link rel="stylesheet" href="styles.css" >
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<div class="align-right">
<a href='index.php'>Post a Blog</a> | <a href='account_settings.php'>Account Settings</a> | <a href='logout.php' onclick="return confirm('Are you sure?')">Logout</a>
</div>
<h1>Blog</h1>
<?php
while($column = mysqli_fetch_assoc($result)){
?>
<h2><?php echo $column["post_title"]?></h2>
<div class="view-post-content"><?php echo $column["post_content"]?></div>
<p class="category">Category: <?php echo $column["post_category"]?></p>
<p>This post was written <?php echo $column["post_date"]?>.</p>
<?php
}
?>
</div>
</div>
</body>
</html>
<?php include "footer.php";?>
あなたのPHPアプリケーションにおけるユーザ認証設定の任意の並べ替えを持っていますか?これはおそらく最初の場所です。ブログ投稿を囲むリクエストごとに、PHPはユーザが自分が誰であるか、与えられた投稿を閲覧/編集/削除する権利を持っていることを確認します。 –
"安全な方法"について言えば、あなたは単にブログの投稿を編集する必要がある場合は、ブログの投稿IDを編集ページに送信し、そのIDによってデータベースからブログデータを取得するだけです。 – arisalsaila
しかし、他の人がそれらのIDを推測してページにアクセスすることができるように、ブログIDはやや安全ではありませんか? – Julian