将用户凭据与/ etc / shadow进行比较的Web应用程序

时间:2014-10-09 00:30:39

标签: security unix authentication

我想通过使用/ etc / shadow检查用户输入的信息来安全地允许Web应用程序验证用户凭据(除非有其他解决方案)。有没有安全的方法来做到这一点?让它以root身份运行并让它检查文件并运行指定的哈希算法和salt字符串并不是太难,但这消除了在哈希中使用salt值并严重降低安全性的全部原因系统。

那么是否有任何实用工具或更好的方法来尝试让Web应用程序验证我的unix凭据或访问/ etc / shadow的安全方式?

1 个答案:

答案 0 :(得分:1)

通常,身份验证将由Web服务器处理(容器管理身份验证)。例如,在Tomcat中,这将针对活动目录进行身份验证:

<Realm className="org.apache.catalina.realm.JNDIRealm"
            debug="99"
            connectionName="CN=Our Users,OU=Accounts,DC=domainds,DC=com"
            connectionPassword="S0mePassWord"
            connectionURL="ldap://192.168.1.0:389"
            alternateURL="ldap://192.168.1.1:389"
            referrals="follow"
            userBase="OU=User Accounts,DC=domainds,DC=com"
            userSearch="(sAMAccountName={0})"
            userSubtree="true"
            roleBase="OU=User Roles,DC=domainds,DC=com"
            roleName="cn"
            roleSearch="(member={0})"
            roleSubtree="true"
            />

要做你所要求的并非不可能,但要注意不要将未加密的密码作为参数传递,因为那些可能在某些形式的&#34; ps&#34;命令。

对于一个脚本(可能需要多个脚本)来执行您所要求的操作,它可能会让您遇到安全问题,特别是如果您不了解代码注入脚本的所有复杂性。 (同样的想法是SQL注入,除了脚本以外。)