首页 / PHP / php – 如何增强网站的安全性?
php – 如何增强网站的安全性?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 如何增强网站的安全性?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2554字,纯文字阅读大概需要4分钟。
内容图文
![php – 如何增强网站的安全性?](/upload/InfoBanner/zyjiaocheng/751/adfbe612cd62416d9ad254a1f0c354e6.jpg)
问题1:
我可以使用$userid = mysql_real_escape_string($_ GET [‘user_id’]);
或者我需要使用下面的代码更好?
function mysql_prep( $value ){
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists( "mysql_real_escape_string" ); //example. php >= v4.3.0
if( $new_enough_php ) { //php v4.30 or higher, undo any magic quote effects so mysql_real_escape_string can do the work
if( $magic_quotes_active ) { $value = stripslashes( $value );}
$value = mysql_real_escape_string( $value );
} else { //before php v4.3.0.
if( !$magic_quotes_active ) { $value = addslashes( $value ); }
}
return $value;
}
$userid = trim(mysql_prep($_GET['user_id']));
问题2:我们真的需要在$_SESSION [‘user_id’]上使用md5()或shal()吗?为什么我们需要那个?会话劫持者只能得到会话ID,但他不能得到会话变量值吗?如果是这样,那么我不需要哈希$_SESSION [‘user_id’]的值了吗?例如 :
if (isset($_POST['login'])) {
if ($username==$user_username_in_db && $hashed_password==$user_password_in_db) {
$_SESSION['user_id'] = sha1($user_id_in_db); //sha1 convert userid to crazy long characters
}
}
$query2 = "SELECT id FROM user WHERE sha1(id)='{$userid}' LIMIT 1";
问题3:由于php会话劫持发生且我无法负担使用ssl / https,所以我让网站每次尝试删除消息或朋友时都要求用户提交密码,因为会话劫持者可能冒充用户删除他的消息/朋友.如果我的网站总是要求用户输入密码,我可以知道这是危险的吗?密码会更容易被黑客攻击?我是否知道会话劫持者只能冒充用户,但不能窃取用户的密码?
解决方法:
问题1:如果您的user_id在数据库中存储为整数,则可以使用:
$user_id = intval($_GET['user_id']);
因此,如果有人篡改了查询字符串,那么所有可能发生的事情就是他们得到一个空白的结果.但是,目前还不清楚你如何使用$_GET [‘user_id’];
问题2:sha1和md5是哈希算法.这意味着对于任何长度的任何给定字符串,它们都会返回一个显示为41/32字节十六进制字符串的数字.
有什么用?使用的是那些算法是不可逆的,这使得它们非常适合隐藏某人的用户名和密码等信息.
许多人为所有事情使用同一个密码,以确保他们的密码不会被盗,以防你搞砸了,黑客可以访问你的数据库 – 你为用户提供了另一层安全 – 没有人应该是能够从哈希中获取实际密码.当然,这也可以防止有权访问数据库的人阅读人的密码并破坏他们的隐私.
现在,有一些方法可以尝试将哈希值反转为纯文本(所谓的彩虹表),但这是另一个主题.
问题3:您实际上应该首先防止会话劫持.为什么会这样?您是否以某种方式(通过URL)向公众公开session_id并且您是否正在实施标准检查?
偶尔询问密码对用户来说是一种烦恼,应该避免,除非你想不出保护会话的方法.
至于其他的东西,有一些叫做PHP PDO的东西,理论上应该使用清理字符串,连接到数据库并将内容插入数据库更容易(虽然它比常规的mysql_或mysqli_函数相当复杂,所以人们似乎避免它).您至少应该阅读它以了解它的作用以及它如何帮助您防止SQL注入.
内容总结
以上是互联网集市为您收集整理的php – 如何增强网站的安全性?全部内容,希望文章能够帮你解决php – 如何增强网站的安全性?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。