Fellas,
>can't see how this should be an issue.
It is a security issue. Most ISP's don't allow register_globals to be turned
on. Read the php docs about register_globals. Zeev and company explain it
better than I can.
http://www.php.net/register_globals

It leads to cookie poisoning, header forging, XSS, extremely tough debugging
sessions, and all sorts of other nastiness. To quote my (un)orthodox buddy
"Never mix da meat with da milk!"

They have warned against using this feature for several years, long (WAY
long) before they turned it off by default. When I read the manual in the
year 2001, I fixed my code, stopped using it and turned it off on all of my
servers immediately. I strongly advise against using applications which rely
on insecure features.

If you really want to solve the register_globals issue, pressure Francisco
Burzi (phpNuke) and other open source project leaders to start writing
better code and stop relying on insecure features that ISPs don't support.
This is the real source of the problem. It is not difficult for them to fix
their code.

It should have been done a long time ago. The collective aggravation these
people cause newbies and ISP's is absolutely staggering. If I had my
druthers, RG would be removed from PHP altogether. It is a dangerous relic
of times gone by, before such issues were known.  I believe in tough love: )

> as a programmer, i hate it how some hosts refuse to keep on top of the
> upgrades...

They usually don't have time and only patch for major upgrades and major
security problems. If you know anyone at an ISP they will tell you what a
monumental task it is just to keep all of the servers secure, keeping them
on the bleeding edge usually isn't an option, and is way dangerous. You have
to consider that by upgrading all the time, in addition to it being nearly
impossible, they are risking breaking other customer's applications every
single time they upgrade anything. If the upgrade is new, any issues
introduced may take weeks to iron out. If your client is down for weeks, at
an ISP, they are gone. If it isn't necessary, and the libraries are secure,
ISP's usually won't upgrade them.

> it's almost a case of "don't upgrade your LAN until the production
> server upgrades", but I prefer "convince you host to upgrade, or move
> host" :)

This is good policy, however, you should have 2 development environments,
bleeding edge, where you build new stuff and keep your knowledge up with
features, and a copy of production. This way you can code for the latest,
find the broken stuff and re-implement for the old version. Usually,
depending on just how old production is, there isn't too much that breaks.

If you are writing and using classes, as much as possible I hope, when
production can take advantage of your latest code, in a year or so, you can
simply update the objects. Just keep a consistent interface and you will be
fine.

> > are now handled by default, the perception being that newer versions
> > of PHP
> > are incompatible with older code.

This perception can be a reality. Curl is a prime example of this. Build a
bleeding edge box and try to get curl to work with open ssl. The upgrade to
4.3.2 and the latest openssl broke this. I know, I was bit by it. I had to
re-write the curl stuff in Perl::LWP after hammering on curl for a week. The
openssl issue was a security one. I will be using Perl for this stuff until
OpenSSL/Curl/PHP get on the same page. I sure am glad I know perl: )

If you really want to stay bleeding edge, you should consider co-location.
This is where you put your own box in the ISP and maintain and secure it
yourself. Then, however, you are on your own with security, not a good place
to be. If you neglect it, you get r00ted.

I run my own boxes(I am a programmer, not an admin). I only have 8, and it
is nearly impossible for me to keep up with only 8 sometimes! I spend a
buttload of time on security lists, more than I program.

I can't imagine running an ISP with 500+ boxes. Every time I patch a box I
run a full scan on it, and check stuff for buffer overflows and regression
test my applications. This alone is sometimes 2 days work, sometimes it
takes a week if an issue is introduced. See
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=77467. This security
upgrade broke mysql and would have caused our apps to go down, had I not
caught it.

If we were at an ISP who stayed bleeding edge and blindly upgraded, we would
have been shut down by that upgrade for several days. Undoubtedly, we would
have fired our ISP (this is one reason we control our boxes, we lose
hundreds of thousands of dollars in revenue for every day we are down). This
was a critical security upgrade. As soon as I found out about it I upgraded
DEV and started testing. If we just went bleeding edge all the time, for the
sake of being bleeding edge, nothing would ever work right.

Hope this gives you some realistic perspective on why your ISP seems
stubborn about upgrading and changing settings. Cut them some slack! It is
for your own good (and the good of others). Though painful, it is an
unfortunate fact of life. Switching ISP's generally will get you the latest
version, for the moment... That honeymoon doesn't last very long. The first
time you pressure them into an upgrade that breaks 20 other customers, they
will be wiser and you won't get much help from them anymore. Most likely,
your current ISP has been here.

thx,
Neil
"behaviour is caused, and the causes are many"
----- Original Message ----- 
From: "Justin French" <[EMAIL PROTECTED]>
To: "Dan Phiffer" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Thursday, August 07, 2003 9:43 PM
Subject: Re: [PHP] Old version of PHP


> On Friday, August 8, 2003, at 09:21  AM, Dan Phiffer wrote:
>
> > I'm working on an ongoing project that depends on a shared webserver
> > running
> > an old version of PHP (4.1.2 I believe). Is there any good reason to
> > stick
> > with an older version of PHP, or might it be a valid suggestion to
> > have it
> > upgraded to something a bit more recent? I have a notion that upgrade
> > attempts may have been snubbed out by the way things like
> > register_globals
> > are now handled by default, the perception being that newer versions
> > of PHP
> > are incompatible with older code.
>
> the register globals "event" happened on 4.1 (from memory), so any
> install over that should be straight forward.  in any case, it's just
> one simple directive that needs to be changed in the php.ini file...
> can't see how this should be an issue.
>
> i think the best reason to keep up-to-date on the versions is that each
> new release is "better, more stable, etc etc"... i haven't ever heard
> anyone on this list say "i prefer 4.2.3 over 4.2.4" :)
>
> as a programmer, i hate it how some hosts refuse to keep on top of the
> upgrades... really useful functions in newer versions aren't available.
>
>
> > Mainly I'm concerned that code I test on our in-house server running
> > version-current PHP will depend on function calls and language
> > constructs
> > that the production server's vintage PHP interpreter lacks.
>
> exactly... there isn't a HUGE number of differences between the current
> release and what they've got on the live server, but there are
> exceptions... i was making good use of file_get_contents() on my LAN,
> but had to write a user-function to replicate it when running on the
> live server which is stuck at 4.2.3 for the moment.
>
> it's almost a case of "don't upgrade your LAN until the production
> server upgrades", but I prefer "convince you host to upgrade, or move
> host" :)
>
>
> Justin
>
>
> -- 
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to