我是以正确的方式使用php会话吗?

时间:2017-03-25 00:09:28

标签: php session

我目前正在构建网络,我正在使用php来完成它。我有一个有效的代码,但我不确定它是最正确和最安全的方法。 为简化起见,我有4个文件:Index(index.php)/ Member Area(profile.php)/登录(signin.php)/登录页面(homepage.php)。 当用户登录并提交用户和密码时,信息将被发送到signin.php,如果它们是正确的,则使用以下代码创建会话:

reportList

现在在index.php我做的是检查会话是否已经创建,如果是,用户看到profile.php,如果不是他看到homepage.php,对于这个purpuse我正在使用这段代码:

session_start();
$_SESSION['username'] = $username;

因此,如果用户被记录,索引将向他显示他的成员区域,否则索引将向他显示登录表单。 我可以依靠这个来保证安全吗? 我是以正确的方式做到的吗?你有什么建议吗。 谢谢大家。

2 个答案:

答案 0 :(得分:0)

这实际上是两件不同的事情:

 你正在以正确的方式使用会话吗?技术上是的。只要在发送任何输出(包括标题)之前启动会话,那么会话就可以工作。你加入它们以及如何使用它取决于你。会话只是在请求之间保持状态。默认的PHP会话有一些技术限制取决于你想做什么,但大多数东西应该没问题。

2.安全吗?这是不同的,实际上与会话关系不大,而且与一般安全性有关。这归结为您如何存储,传输和编码密码。有很多关于如何做到这一点的教程。此外,您如何保护会话cookie。再一次,关于此的许多好文章。最后,使用SSL。如果网站上有任何类型的安全表单,大多数最新的浏览器甚至都不会显示没有网站的网站。

答案 1 :(得分:0)

根据您的评论,您可能想要深入思考未来应用程序的要求。它归结为尽可能做出尽可能明智的决策。我不想从你的翅膀上刮风......但是......

例如,如果您希望站点响应(特别是将来),不仅在样式方面而且在可用性方面,您应该已经考虑了jQueryAngularJS等框架。并将它们连接到您与PHP生成的页面混合编写的API。

当点击/输入内容时,该网站最终会混合服务器端生成的输出和API响应,使前端充满生命。

下一步是考虑使用PHP框架。虽然编写自己的社交网络网站会很酷,但你真的需要重新发明所有这些轮子吗?您可能需要查看LaravelSymfonyCodeIgniter等等...它们提供了您可以配置的安全登录机制,但您需要它们。

如果你想艰难前行......(如果你使用框架,你仍然会成为一名优秀的程序员)对于初学者来说,请查看PHPAuth以帮助您启动登录和身份验证流程或{ {3}}用于基于令牌的身份验证(来自任何设备)。 PHP-JWT用于表单验证。 GUMP用于对您的数据库进行安全查询。

如果适用,当你提到我将用于社交网络项目的Web服务器的问题时,我现在会去nginx。它具有高度可扩展性,性能良好,并且有可能比apache设置更安全。