我目前正在编写一个PHP登录脚本并尝试尽可能安全地使用它,目前脚本的制作只是为了感兴趣而不是任何实际的应用程序。我遇到了一个我无法克服的小问题,但更多的是最好的方式而不是实际的问题。从安全的角度来看,我认为这并不重要,我只是想知道哪种方式最好,以及为什么这样做。
为了使这个类工作,需要设置很多变量,例如包含用户登录详细信息的表,用户名和密码的字段,要使用的加密或散列类型其他一些人。您如何建议设置这些的最佳方法?目前我可以想到在类构造函数参数中设置它们,但是有很长的列表需要设置或在类的开头将它们设置为公共静态变量。你觉得哪个是最好的,也是为什么我能理解它背后的原因。如果你对我的两个有更好的想法,我也想听听它们。
对不起,如果已经问到这个问题,我已经尝试过搜索,但发现不多;甚至很难知道要搜索什么。
答案 0 :(得分:0)
一个建议是将参数放入单个数组中。像
<?php
class Example
{
# ...code here...
public function __construct($args)
{
foreach($args as $key => $val)
{
switch($key)
{
case 'foo':
# ...code here...
break;
case 'bar':
# ...code here...
break;
default:
# discard irrelevent elements
}
}
}
# ...code here...
}
答案 1 :(得分:0)
当你说表时你打算有一个用户信息数据库吗?验证凭证集后,您可以将唯一ID传递给构造函数,并允许在通过查询数据库进行实例化时设置内部类属性。或者,编写大量的setter并根据需要构建每个对象。
有关加密和类似设置的一件事,它们甚至会因用户而异吗?您是否可以考虑在用户类的所有实例的设置变量中设置它们,而不是为每个对象设置它们。