php-windows Digest 11 Apr 2007 17:59:02 -0000 Issue 3189

Topics (messages 27655 through 27666):

Re: So why do I need session?
        27655 by: Mikael Grön
        27656 by: Mikael Grön
        27657 by: Stut
        27658 by: sam rumaizan
        27659 by: Mikael Grön
        27660 by: Stut
        27661 by: Mikael Grön
        27662 by: Stut
        27663 by: Mikael Grön
        27665 by: Jody Williams

java with PHP
        27664 by: sam rumaizan
        27666 by: Stanislav Malyshev

Administrivia:

To subscribe to the digest, e-mail:
        [EMAIL PROTECTED]

To unsubscribe from the digest, e-mail:
        [EMAIL PROTECTED]

To post to the list, e-mail:
        [email protected]


----------------------------------------------------------------------
--- Begin Message ---
Are you asking someone specifically, or is this a general question?

Here's an example of when sessions are useful:
You have a login area on your website on which users who have registered can log in to access special content. Only, you want such a high security on your website so that people shouldn't be able to simply browse to the hidden files, nor should a user still be logged in when his friend uses his computer and starts a fresh browser. Here's where sessions are perfect! You store the userId or similar information in the session and start every secret page with the question:

if (!isset($_SESSION['userId']) || !CoolCheckUserValidityFunction($_SESSION['userId'])):
header("Location: login.php");
exit;
else:
$GLOBALS[USER] = new User($_SESSION['userId']);
endif;

of course you should not do that check in login.php... :P

Mike

PS: That $GLOBALS[USER] and the User class part is my own stuff.. Dunno if anyone else does stuff like that.. :P


sam rumaizan skrev:
You use a session to store values that are required over the course of a single visit, and a cookie to store more persistent data that is used over multiple visits. Session: when you close the browser the session gets flushed. Which means the browser will not recognize the user next time he/she browse the page unlike cookie. So why do I need session? OR maybe I didn’t understand session



--------------------------------- Looking for earth-friendly autos? Browse Top Cars by "Green Rating" at Yahoo! Autos' Green Center.

--- End Message ---
--- Begin Message --- Yes, no, you're right. I don't do that on every page on the systems I've built. And yes, I define('USER','The user namespace'); before I set it.

Mike

Stut skrev:
Out of curiosity, why do you create the user object on every page request? Why not store the user object in the session?

Also, $GLOBALS[USER] is invalid unless you have defined a constant called USER somewhere.

-Stut



--- End Message ---
--- Begin Message ---
Mikael Grön wrote:
Are you asking someone specifically, or is this a general question?

Here's an example of when sessions are useful:
You have a login area on your website on which users who have registered can log in to access special content. Only, you want such a high security on your website so that people shouldn't be able to simply browse to the hidden files, nor should a user still be logged in when his friend uses his computer and starts a fresh browser. Here's where sessions are perfect! You store the userId or similar information in the session and start every secret page with the question:

if (!isset($_SESSION['userId']) || !CoolCheckUserValidityFunction($_SESSION['userId'])):
header("Location: login.php");
exit;
else:
$GLOBALS[USER] = new User($_SESSION['userId']);
endif;

of course you should not do that check in login.php... :P

Mike

PS: That $GLOBALS[USER] and the User class part is my own stuff.. Dunno if anyone else does stuff like that.. :P

Out of curiosity, why do you create the user object on every page request? Why not store the user object in the session?

Also, $GLOBALS[USER] is invalid unless you have defined a constant called USER somewhere.

-Stut

--- End Message ---
--- Begin Message ---
It is a general question.
  Why can't I use cookie instead?
  
Mikael Grön <[EMAIL PROTECTED]> wrote:
  Are you asking someone specifically, or is this a general question?

Here's an example of when sessions are useful:
You have a login area on your website on which users who have registered 
can log in to access special content. Only, you want such a high 
security on your website so that people shouldn't be able to simply 
browse to the hidden files, nor should a user still be logged in when 
his friend uses his computer and starts a fresh browser. Here's where 
sessions are perfect! You store the userId or similar information in the 
session and start every secret page with the question:

if (!isset($_SESSION['userId']) || 
!CoolCheckUserValidityFunction($_SESSION['userId'])):
header("Location: login.php");
exit;
else:
$GLOBALS[USER] = new User($_SESSION['userId']);
endif;

of course you should not do that check in login.php... :P

Mike

PS: That $GLOBALS[USER] and the User class part is my own stuff.. Dunno 
if anyone else does stuff like that.. :P


sam rumaizan skrev:
> You use a session to store values that are required over the course of a 
> single visit, and a cookie to store more persistent data that is used over 
> multiple visits. 
> Session: when you close the browser the session gets flushed. Which means the 
> browser will not recognize the user next time he/she browse the page unlike 
> cookie.
> 
> So why do I need session? OR maybe I didn’t understand session
>
>
>
> 
>
> 
> ---------------------------------
> Looking for earth-friendly autos? 
> Browse Top Cars by "Green Rating" at Yahoo! Autos' Green Center. 
> 





 

       
---------------------------------
The fish are biting.
 Get more visitors on your site using Yahoo! Search Marketing.

--- End Message ---
--- Begin Message --- You can, only it's not as secure. It's easier to edit cookies since they're not stored on the server. Also cookies don't disappear when you close the browser, which is standard on other pages with login systems. Your users will expect to be logged out when closing the browser.

Mike

sam rumaizan skrev:
It is a general question.
  Why can't I use cookie instead?
Mikael Grön <[EMAIL PROTECTED]> wrote:
  Are you asking someone specifically, or is this a general question?

Here's an example of when sessions are useful:
You have a login area on your website on which users who have registered can log in to access special content. Only, you want such a high security on your website so that people shouldn't be able to simply browse to the hidden files, nor should a user still be logged in when his friend uses his computer and starts a fresh browser. Here's where sessions are perfect! You store the userId or similar information in the session and start every secret page with the question:

if (!isset($_SESSION['userId']) || !CoolCheckUserValidityFunction($_SESSION['userId'])):
header("Location: login.php");
exit;
else:
$GLOBALS[USER] = new User($_SESSION['userId']);
endif;

of course you should not do that check in login.php... :P

Mike

PS: That $GLOBALS[USER] and the User class part is my own stuff.. Dunno if anyone else does stuff like that.. :P


sam rumaizan skrev:
You use a session to store values that are required over the course of a single visit, and a cookie to store more persistent data that is used over multiple visits. Session: when you close the browser the session gets flushed. Which means the browser will not recognize the user next time he/she browse the page unlike cookie.

So why do I need session? OR maybe I didn’t understand session






---------------------------------
Looking for earth-friendly autos? Browse Top Cars by "Green Rating" at Yahoo! Autos' Green Center.





---------------------------------
The fish are biting.
 Get more visitors on your site using Yahoo! Search Marketing.

--- End Message ---
--- Begin Message ---
Mikael Grön wrote:
You can, only it's not as secure. It's easier to edit cookies since they're not stored on the server. Also cookies don't disappear when you close the browser, which is standard on other pages with login systems. Your users will expect to be logged out when closing the browser.

"as secure"??? Cookies are not secure at all. There has been a *very* lengthy discussion of this subject on the PHP-General mailing list. Search the archives for a recent thread with the subject "Session Authentication".

-Stut

sam rumaizan skrev:
It is a general question.
  Why can't I use cookie instead?
  Mikael Grön <[EMAIL PROTECTED]> wrote:
  Are you asking someone specifically, or is this a general question?

Here's an example of when sessions are useful:
You have a login area on your website on which users who have registered can log in to access special content. Only, you want such a high security on your website so that people shouldn't be able to simply browse to the hidden files, nor should a user still be logged in when his friend uses his computer and starts a fresh browser. Here's where sessions are perfect! You store the userId or similar information in the session and start every secret page with the question:

if (!isset($_SESSION['userId']) || !CoolCheckUserValidityFunction($_SESSION['userId'])):
header("Location: login.php");
exit;
else:
$GLOBALS[USER] = new User($_SESSION['userId']);
endif;

of course you should not do that check in login.php... :P

Mike

PS: That $GLOBALS[USER] and the User class part is my own stuff.. Dunno if anyone else does stuff like that.. :P


sam rumaizan skrev:
You use a session to store values that are required over the course of a single visit, and a cookie to store more persistent data that is used over multiple visits. Session: when you close the browser the session gets flushed. Which means the browser will not recognize the user next time he/she browse the page unlike cookie.

So why do I need session? OR maybe I didn’t understand session






---------------------------------
Looking for earth-friendly autos? Browse Top Cars by "Green Rating" at Yahoo! Autos' Green Center.





       ---------------------------------
The fish are biting.
 Get more visitors on your site using Yahoo! Search Marketing.


--- End Message ---
--- Begin Message ---
As I said.
Cookies being completely insecure is as valid as Cookies not being as secure as Sessions.

... *sighs*

Though, there are ways to make cookies more secure, for example by storing copies of them with timestamps in a database and matching values before allowing users to pass... But that's more or less exactly what Sessions do, so there's really no use of Cookies for authentication.

Mike


Stut skrev:
Mikael Grön wrote:
You can, only it's not as secure. It's easier to edit cookies since they're not stored on the server. Also cookies don't disappear when you close the browser, which is standard on other pages with login systems. Your users will expect to be logged out when closing the browser.

"as secure"??? Cookies are not secure at all. There has been a *very* lengthy discussion of this subject on the PHP-General mailing list. Search the archives for a recent thread with the subject "Session Authentication".

-Stut

sam rumaizan skrev:
It is a general question.
  Why can't I use cookie instead?
  Mikael Grön <[EMAIL PROTECTED]> wrote:
  Are you asking someone specifically, or is this a general question?

Here's an example of when sessions are useful:
You have a login area on your website on which users who have registered can log in to access special content. Only, you want such a high security on your website so that people shouldn't be able to simply browse to the hidden files, nor should a user still be logged in when his friend uses his computer and starts a fresh browser. Here's where sessions are perfect! You store the userId or similar information in the session and start every secret page with the question:

if (!isset($_SESSION['userId']) || !CoolCheckUserValidityFunction($_SESSION['userId'])):
header("Location: login.php");
exit;
else:
$GLOBALS[USER] = new User($_SESSION['userId']);
endif;

of course you should not do that check in login.php... :P

Mike

PS: That $GLOBALS[USER] and the User class part is my own stuff.. Dunno if anyone else does stuff like that.. :P


sam rumaizan skrev:
You use a session to store values that are required over the course of a single visit, and a cookie to store more persistent data that is used over multiple visits. Session: when you close the browser the session gets flushed. Which means the browser will not recognize the user next time he/she browse the page unlike cookie.

So why do I need session? OR maybe I didn’t understand session






---------------------------------
Looking for earth-friendly autos? Browse Top Cars by "Green Rating" at Yahoo! Autos' Green Center.





       ---------------------------------
The fish are biting.
 Get more visitors on your site using Yahoo! Search Marketing.



--- End Message ---
--- Begin Message ---
Mikael Grön wrote:
As I said.
Cookies being completely insecure is as valid as Cookies not being as secure as Sessions.

Sessions are more secure than cookies, but only in so far as the actual data stored in a session is never sent to the client.

... *sighs*

I'm not sure what that's supposed to mean. This is a serious topic, and the lack of understanding of it that too many PHP developers suffer from is part of the reason PHP is getting a bad security reputation.

Though, there are ways to make cookies more secure, for example by storing copies of them with timestamps in a database and matching values before allowing users to pass... But that's more or less exactly what Sessions do, so there's really no use of Cookies for authentication.

There is no real way to make cookies secure. Anything you do needs to be reversible and so can be brute-forced. The best approach to take IMHO is to use cookies for session IDs and identification between visits. *Never* authenticate someone based purely on a cookie, and *never* track user status in cookies.

Oh, and to correct one other thing, cookies will disappear when you close the browser if you don't give them an expiry time. This is how the session ID cookie works.

-Stut

Stut skrev:
Mikael Grön wrote:
You can, only it's not as secure. It's easier to edit cookies since they're not stored on the server. Also cookies don't disappear when you close the browser, which is standard on other pages with login systems. Your users will expect to be logged out when closing the browser.

"as secure"??? Cookies are not secure at all. There has been a *very* lengthy discussion of this subject on the PHP-General mailing list. Search the archives for a recent thread with the subject "Session Authentication".

-Stut

sam rumaizan skrev:
It is a general question.
  Why can't I use cookie instead?
  Mikael Grön <[EMAIL PROTECTED]> wrote:
  Are you asking someone specifically, or is this a general question?

Here's an example of when sessions are useful:
You have a login area on your website on which users who have registered can log in to access special content. Only, you want such a high security on your website so that people shouldn't be able to simply browse to the hidden files, nor should a user still be logged in when his friend uses his computer and starts a fresh browser. Here's where sessions are perfect! You store the userId or similar information in the session and start every secret page with the question:

if (!isset($_SESSION['userId']) || !CoolCheckUserValidityFunction($_SESSION['userId'])):
header("Location: login.php");
exit;
else:
$GLOBALS[USER] = new User($_SESSION['userId']);
endif;

of course you should not do that check in login.php... :P

Mike

PS: That $GLOBALS[USER] and the User class part is my own stuff.. Dunno if anyone else does stuff like that.. :P


sam rumaizan skrev:
You use a session to store values that are required over the course of a single visit, and a cookie to store more persistent data that is used over multiple visits. Session: when you close the browser the session gets flushed. Which means the browser will not recognize the user next time he/she browse the page unlike cookie.

So why do I need session? OR maybe I didn’t understand session






---------------------------------
Looking for earth-friendly autos? Browse Top Cars by "Green Rating" at Yahoo! Autos' Green Center.





       ---------------------------------
The fish are biting.
 Get more visitors on your site using Yahoo! Search Marketing.




--- End Message ---
--- Begin Message ---
You keep repeating what I've already said. That's what the *sigh* was about.
But, I was hasty in sighing as you're right in how important it is to clarify to the absolute limit on this subject. Sorry about that! Far to many programmers are completely oblivious when it comes to hacking methods. And, as you said, there's no way to make a cookie secure... Only a bit more secure. Everything is in shades of gray. Truthfully, I've never ever built a site or part of a site that relies on cookies for anything. Except for the more or less default PHP configuration for sessions to use cookies for the SESSID.

Mike


Stut skrev:
Mikael Grön wrote:
As I said.
Cookies being completely insecure is as valid as Cookies not being as secure as Sessions.

Sessions are more secure than cookies, but only in so far as the actual data stored in a session is never sent to the client.

... *sighs*

I'm not sure what that's supposed to mean. This is a serious topic, and the lack of understanding of it that too many PHP developers suffer from is part of the reason PHP is getting a bad security reputation.

Though, there are ways to make cookies more secure, for example by storing copies of them with timestamps in a database and matching values before allowing users to pass... But that's more or less exactly what Sessions do, so there's really no use of Cookies for authentication.

There is no real way to make cookies secure. Anything you do needs to be reversible and so can be brute-forced. The best approach to take IMHO is to use cookies for session IDs and identification between visits. *Never* authenticate someone based purely on a cookie, and *never* track user status in cookies.

Oh, and to correct one other thing, cookies will disappear when you close the browser if you don't give them an expiry time. This is how the session ID cookie works.

-Stut

--- End Message ---
--- Begin Message ---
As a side note, there are a lot of companies/organizations that
completely block cookies at the firewall level.  As a result, the
cookie never makes it to the web browser.  If relying strictly on
cookies for authentication, on every page, the user must
re-authenticate.

Jody

--- End Message ---
--- Begin Message ---
How can I run java with PHP?
  Any example please



 

       
---------------------------------
Don't pick lemons.
See all the new 2007 cars at Yahoo! Autos.

--- End Message ---
--- Begin Message ---
How can I run java with PHP?
  Any example please

You could look here:
http://www.zend.com/products/zend_platform/features_comparison/java_bridge
or here:
http://php-java-bridge.sourceforge.net/pjb/

--
Stanislav Malyshev, Zend Products Engineer
[EMAIL PROTECTED]  http://www.zend.com/

--- End Message ---

Reply via email to