2014-10-09 32 views
0

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

那么是否有任何实用程序或更好的方式来尝试和有一个Web应用程序验证我的Unix凭据或安全的方式来访问/ etc/shadow?

回答

1

通常,认证将由Web服务器处理(容器管理认证)。例如,在Tomcat中,这会针对Active Directory进行身份验证:

<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" 
      /> 

要你问什么是不可能的,但要注意不要通过未加密的密码作为参数,因为这些可能会在某些形式可见的“ps”命令。

对于脚本(可能您需要多个脚本)来执行您的要求,这可能会使您遇到安全问题,特别是如果您不知道将代码注入脚本的所有复杂问题。 (相同的想法SQL注入,除了它的脚本。)

相关问题