Loading...
 
Skip to main content

History: SecurityDataFlow

Source of version: 5 (current)

Copy to clipboard
!!!~~#666666,transparent:Question:  Using the “user” field during login as an example, where does the user-submitted data flow in tiki?~~
!!!~~#666666,transparent:Answer:  Here is a draft, unofficial answer:~~

~~ ,#00FFFF:./tiki-login.php:~~
~~ ,#F4CCCC:__$requestedUser__~~~~ ,transparent: = isset($_REQUEST['user']) ? ~~~~ ,#F4CCCC:$_REQUEST['~~~~ ,#F4CCCC:__user__~~~~ ,#F4CCCC:']~~~~ ,transparent: : false;~~
~~ ,transparent:$ret = $userlib->~~~~ ,transparent:__validate_user__~~~~ ,transparent:(~~~~ ,#F4CCCC:__$requestedUser__~~~~ ,transparent:, $pass, $challenge, $response);~~

~~ ,#00FFFF:./lib/userslib.php:~~
~~ ,transparent:class UsersLib extends TikiLib~~
~~ ,transparent:    function ~~~~ ,transparent:__validate_user__~~~~ ,transparent:(~~~~ ,#F4CCCC:__$user__~~~~ ,transparent:, $pass, $challenge = '', $response = '', $validate_phase=false)~~
~~ ,transparent:        list($result, $user) = $this->~~~~ ,transparent:__validate_user_tiki__~~~~ ,transparent:(~~~~ ,#F4CCCC:__$user__~~~~ ,transparent:, $pass, $challenge, $response, $validate_phase);~~
~~ ,transparent:    function ~~~~ ,transparent:__validate_user_tiki__~~~~ ,transparent:(~~~~ ,#F4CCCC:__$user__~~~~ ,transparent:, $pass, $challenge, $response, $validate_phase = false)~~
~~ ,transparent:__        $query__~~~~ ,transparent: = 'select * from `users_users` where binary `login` = ~~~~ ,transparent:__?__~~~~ ,transparent:';  ~~
~~ ,transparent:        $result = $this->~~~~ ,transparent:__query($query__~~~~ ,transparent:, array(~~~~ ,#F4CCCC:__$user__~~~~ ,transparent:));~~

~~ ,#00FFFF:./lib/tikilib.php:~~
~~ ,transparent:class TikiLib extends TikiDb_Bridge~~

~~ ,#00FFFF:./lib/core/TikiDb/Bridge.php:~~
~~ ,transparent:class TikiDb_Bridge extends TikiDb~~
~~ ,transparent:    function ~~~~ ,transparent:__query(__~~~~ ,transparent:__$query__~~~~ ,transparent: = null, ~~~~ ,#F4CCCC:__$values__~~~~ ,transparent: = null, $numrows = -1, $offset = -1, $reporterrors = true ) // {{{~~
~~ ,transparent:        return self::~~~~ ,transparent:__get()__~~~~ ,transparent:->~~~~ ,transparent:__query($query__~~~~ ,transparent:, ~~~~ ,#F4CCCC:__$values__~~~~ ,transparent:, $numrows, $offset, $reporterrors);  //get()=db connection instance~~

~~ ,#00FFFF:./lib/core/TikiDb.php:~~
~~ ,transparent:abstract class TikiDb~~
~~ ,transparent:    public static function ~~~~ ,transparent:__get() __~~~~ ,transparent:// {{{~~
~~ ,transparent:        return self::~~~~ ,transparent:__$instance__~~~~ ,transparent:;~~
~~ ,transparent:    private static $instance;~~
~~ ,transparent:    public static function ~~~~ ,transparent:__set(__~~~~ ,transparent:TikiDb ~~~~ ,transparent:__$instance__~~~~ ,transparent:) // {{{~~
~~ ,transparent:        return self::~~~~ ,transparent:$instance = $instance;~~
~~ ,transparent:    abstract function ~~~~ ,transparent:__query($query__~~~~ ,transparent: = null, ~~~~ ,#F4CCCC:__$values__~~~~ ,transparent: = null, $numrows = -1, $offset = -1, $reporterrors = true);~~

~~ ,#00FFFF:./lib/core/TikiDb/Pdo.php:~~
~~ ,transparent:class TikiDb_Pdo extends TikiDb~~
~~ ,transparent:function ~~~~ ,transparent:__query($query__~~~~ ,transparent: = null, ~~~~ ,#F4CCCC:__$values__~~~~ ,transparent: = null, $numrows = -1, $offset = -1, $reporterrors = true ) // {{{~~
~~ ,transparent:    $result = $this->~~~~ ,transparent:___query($query__~~~~ ,transparent:, ~~~~ ,#F4CCCC:__$values__~~~~ ,transparent:, $numrows, $offset);~~
~~ ,transparent:private function ~~~~ ,transparent:___query__~~~~ ,transparent:(~~~~ ,transparent:__$query__~~~~ ,transparent:, ~~~~ ,#F4CCCC:__$values__~~~~ ,transparent: = null, $numrows = -1, $offset = -1) // {{{~~
~~ ,transparent:    if ($values) {~~
~~ ,transparent:        if ( @ ~~~~ ,transparent:__$pq__~~~~ ,transparent: = $this->db->~~~~ ,transparent:__prepare__~~~~ ,transparent:(~~~~ ,transparent:__$query__~~~~ ,transparent:) ) {~~
~~ ,transparent:            $result = ~~~~ ,transparent:__$pq__~~~~ ,transparent:->~~~~ ,transparent:__execute__~~~~ ,transparent:(~~~~ ,#F4CCCC:__$values__~~~~ ,transparent:);~~

 

 

~~ ,transparent:See also: ~~((Login documentation))
Show PHP error messages