我是一位科技作家,他做了很多HTML/CSS,但被扔进了一个高压锅里,用PHP重写了一个web应用程序,并且做得相当好,但我有点担心安全性。
具体来说,主页是INDEX.PHP,用户在其中登录。一旦登录,页面就会重写部分内容,并显示未登录的用户无法使用的菜单选项。大约50%的用户永远不需要登录,因为他们将查看不需要安全性的公共文档。其他50%的用户将限制查看某些文档/页面的权限,并能够写入数据库。
这一切我都做得很好,但我关心的是我正在做的两件事,以及它们是否合适:
谢谢你的帮忙!
发布于 2012-09-11 22:18:13
$_SESSION会是你的朋友。在正常的共享托管环境中,$_SESSION可能不会比,呃,当前会话的持续时间更长,所以相应地进行计划。(除登录外,别再依赖它了。)
你需要阅读session_start和朋友的信息。
此外,请查看下面的讨论:PHP HTML sanitizer用于清理HTML。(就像FYI一样,bbcode和markdown之所以如此受欢迎也是有原因的。)
发布于 2012-09-11 22:19:45
strip_tags只允许某些特殊标记或使用html消毒液发布于 2012-09-11 22:25:34
1.成功登录后,存储一个新的$_SESSION变量,比如用户ID (因为这似乎是经常需要的)
示例:
if(login is successful)
{
$_SESSION['userId'] = $userId;
}创建一个php auth页面,检查是否填充了会话var。如果没有,请重定向到拒绝访问或登录页面。
示例:
if(! isset($_SESSION['userId']) || $_SESSION['userId'] == '')
{
header("Location: accessDenied.php?msg=Not logged in");
}在每个安全页上,require('auth.php');
2.您可以在textbox上使用strip_tags,对最终进入数据库的用户输入使用mysqli_real_escape_string。(或使用准备好的语句,请参见Best way to prevent SQL Injection in PHP)
https://stackoverflow.com/questions/12378706
复制相似问题