我想通过使用/ etc / shadow检查用户输入的信息来安全地允许Web应用程序验证用户凭据(除非有其他解决方案)。有没有安全的方法来做到这一点?让它以root身份运行并让它检查文件并运行指定的哈希算法和salt字符串并不是太难,但这消除了在哈希中使用salt值并严重降低安全性的全部原因系统。
那么是否有任何实用工具或更好的方法来尝试让Web应用程序验证我的unix凭据或访问/ etc / shadow的安全方式?
答案 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注入,除了脚本以外。)