Thursday, 16 April 2015

Config apache for ldap authentication

1. install mod_authz_ldap module for apache
#yum install mod_authz_ldap
2. add following one line to httpd.conf
    LoadModule authz_ldap_module modules/mod_authz_ldap.so
3. restart apache
#/etc/init.d/httpd restart or
#/etc/init.d/apache restart (ubuntu)
4. create .htaccess under the folder you want to restrict user login by ldap, such as /documentation,
    and add following contents to .htaccess

**********************************************************************
      Options +FollowSymLinks
      Options All -Indexes
      RewriteEngine on

      DirectoryIndex docs.html

      Order allow,deny
      Allow from all

      AuthzLDAPMethod ldap
      AuthzLDAPAuthoritative on
      AuthzLDAPServer ldap.example.com:389
      AuthzLDAPUserBase "ou=people,dc=example,dc=com"
      AuthzLDAPUserKey cn
      AuthzLDAPUserScope base
      AuthType Basic
      AuthName "Password Protected Area"
      require valid-user
      AuthzLDAPLogLevel info
*************************************************************************

If you still can login by ldap, please check error.log to see the reason for debug
Notice: For  AuthzLDAPUserKe, you should check your ldap config first, then config it according your ldap config

ldap command:
ldapsearch -x -h ldap.example.cso uid=$username

Thursday, 9 April 2015

PHP ------ OS and Browser detection

<?php

$user_agent     =   $_SERVER['HTTP_USER_AGENT'];
function getOS() {
    global $user_agent;
    $os_platform    =   "Unknown OS Platform";
    $os_array       =   array(
                            '/windows nt 6.2/i'     =>  'Windows 8',
                            '/windows nt 6.1/i'     =>  'Windows 7',
                            '/windows nt 6.0/i'     =>  'Windows Vista',
                            '/windows nt 5.2/i'     =>  'Windows Server 2003/XP x64',
                            '/windows nt 5.1/i'     =>  'Windows XP',
                            '/windows xp/i'         =>  'Windows XP',
                            '/windows nt 5.0/i'     =>  'Windows 2000',
                            '/windows me/i'         =>  'Windows ME',
                            '/win98/i'              =>  'Windows 98',
                            '/win95/i'              =>  'Windows 95',
                            '/win16/i'              =>  'Windows 3.11',
                            '/macintosh|mac os x/i' =>  'Mac OS X',
                            '/mac_powerpc/i'        =>  'Mac OS 9',
                            '/linux/i'              =>  'Linux',
                            '/ubuntu/i'             =>  'Ubuntu',
                            '/iphone/i'             =>  'iPhone',
                            '/ipod/i'               =>  'iPod',
                            '/ipad/i'               =>  'iPad',
                            '/android/i'            =>  'Android',
                            '/blackberry/i'         =>  'BlackBerry',
                            '/webos/i'              =>  'Mobile'
                        );

    foreach ($os_array as $regex => $value) {

        if (preg_match($regex, $user_agent)) {
            $os_platform    =   $value;
        }
    }
    return $os_platform;
}
function getBrowser() {

    global $user_agent;

    $browser        =   "Unknown Browser";

    $browser_array  =   array(
                            '/msie/i'       =>  'Internet Explorer',
                            '/firefox/i'    =>  'Firefox',
                            '/safari/i'     =>  'Safari',
                            '/chrome/i'     =>  'Chrome',
                            '/opera/i'      =>  'Opera',
                            '/netscape/i'   =>  'Netscape',
                            '/maxthon/i'    =>  'Maxthon',
                            '/konqueror/i'  =>  'Konqueror',
                            '/mobile/i'     =>  'Handheld Browser'
                        );

    foreach ($browser_array as $regex => $value) {
        if (preg_match($regex, $user_agent)) {
            $browser    =   $value;
        }
    }
    return $browser;
}
$user_os        =   getOS();
$user_browser   =   getBrowser();
$device_details =  "<br/><strong>Browser: </strong>".$user_browser." ".$version."<br /><strong>Operating System: </strong>".$user_os."";
print_r($device_details);

//echo("<br /><br /><br />".$_SERVER['HTTP_USER_AGENT']."");

$whole_info = $_SERVER['HTTP_USER_AGENT'];

$split_info_array = explode(" ",$whole_info);

foreach($split_info_array as $value)
{
    if($user_browser == 'Internet Explorer') {
        if (strpos($value,'MSIE') !== false) {
            $pos_browser = key($split_info_array);
            $browser_version_array = explode(";",$split_info_array[ $pos_browser]);
            $browser_version = $browser_version_array[0];
            echo "<br/>" . "Version: " . $browser_version;
            }
    } else if ($user_browser == 'Safari') {
        if (strpos($value,'Version') !== false) {
            $pos_browser = key($split_info_array);
            $browser_version_array = explode("/",$split_info_array[ $pos_browser]);
            $browser_version = $browser_version_array[0];
            echo "<br/>" . "Version: " . $browser_version;
            }
    } else if (strpos($value,$user_browser) !== false) {
        $browser_info_array = explode('/', $value);
        $browser_version = $browser_info_array[1];
        echo "<br/>" . "Version: " . $browser_version;
    }
}