首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计:将管理器选项放在哪里?

设计:将管理器选项放在哪里?
EN

Stack Overflow用户
提问于 2011-10-04 00:27:59
回答 1查看 27关注 0票数 0

我有一个音乐商店程序,其中有一个测试类,一个办事员类(负责输入),一个Stocker类(分配CD的可用性和价格),Storehouse (有所有可用的CD),然后是CD(有一个价格和名称)。我想添加一个选项,让经理通过输入安全代码来添加CD。我的想法是这样的:当办事员询问某人的订单(他们想要哪张CD)时,您可以输入字符串"password“,这将允许您输入一个字符串,Storehouse将检查该字符串是否符合条件,然后经理才能添加CD。给出代码的大致概念:

代码语言:javascript
复制
public class CounterPerson(){
...
    System.out.println("Hello. Indicate how many CDs you want");
    System.out.println("You can also type password to add parts. ");
    System.out.println("Here is what is available. ");
    System.out.println(storeHouse);
    String security = new String();
    if(in.next().equals("password")){
        System.out.println("Now type the password: ");
        security = in.next();
        StoreHouse.addCD(security);
    }
    else{

然后在StoreHouse类中:

代码语言:javascript
复制
public void addCD(String security){
if(checkSecure(security)){
System.out.println("You can add CDs now. Specify a name and quantity");
...
}
else{
System.out.println("You are not authorized.");
}
}

private boolean check(String security){
boolean secure = false;
if(security.equals("blahblah123"){ secure = true };
return secure;
}

我的问题是:这是好的(安全的)设计吗?若否,原因为何?

编辑:如果这一点不清楚,Stocker类也可以访问Stockhouse (这就是他获得CD的地方)

EN

回答 1

Stack Overflow用户

发布于 2011-10-04 00:51:28

依靠硬编码的常量来验证安全性从来都不是一个好主意。在这种情况下,从已编译的类对"blahblah123“进行逆向工程并不难。

你应该考虑你的系统的需求是什么,以及你需要它有多“安全”。每个用户都应该有自己的密码吗?是否有每个人都使用的通用密码?是否要将执行操作的用户记入日志?如果需要区分用户,账号是如何创建的?例如,您可能需要一个管理“控制台”来完成此操作,并在数据库中对密码进行加密。

您可以在几篇文章中获得一些最佳实践,甚至在SOverflow中也是如此。

很抱歉给你留下的问题比答案多;)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7637822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档