You are here: Re: Looking for general advice on security « PHP Programming Language « IT news, forums, messages
Re: Looking for general advice on security

Posted by Schraalhans Keukenmeester on 04/28/06 17:39

tony@tony.com wrote:
> I'm designing a survey form page that will be fairly complex and am
> becoming confident enough with PHP now to tackle most things.
> (Thanks to everyone here who has helped)
>
> Before I go too far with this I was wondering if anyone could perhaps
> offer advice or point me to any documents/web pages that could help with
> ensuring the security of the form/page and site. It is likely that the
> form will come under attack I expect.
>
> Even comments about the best chmod settings are welcome.
>
> I'd rather not have to wade through another history of the internet book
> with the words "and be security conscious by using SSL" on the last page
> which is what most adviice I've found so far boils down to.
>
> I've located standard advice such as using PHP strip-tags on input fields
> and other PHP specific stuff but was wondering how best to get
> interactive with the security.
>
> Are there any PHP libraries perhaps that help with this?
>
> I'm thinking of things like verifying users ID while they are online
> without having them email and preventing bots from getting in and things
> like that.
>
> Any input on this would be most welcome.
>
> thanks
>
> tony

Consider using https for starters, if the page collects more or less
sensitive information.

It may be a good practice from security point of view to have ALL your
form-vars parsed by a separate handler/filter first before handing them
to your operational code. In other words, there should never be any
referral to $_POST["anyname"] (or $_GET) in your actual processing code.
The handler should:

Check type consistency
Truncate data to intended maxmimum length/size
Strip possibly dangerous chars, esp wrt MySQL injection. (mod_security
on your webserver can help with this further)
Discard any variable with a name not used in your form, and possibly
take further action (like blocking client ip)

Further: keep track of amount of submits by an address or address range
in a given timeframe. If this exceeds a reasonable value, block the
address (temporarily?). Or have a lookup in your db how long it was
since the last attempt for ip w.x.y.z and introduce a delay for the user.

To prevent bot-action, include a verification field with hard to scan
characters.

keep db passwords, names etc. in an include file outside your docroot.
having non-standard names is a good thing from security point of view.

Translate form fieldnames to different ones you use in your db.

Don't use $_GLOBALS.

Set safe mode on if it's not already the default mode on your server.

The server should run as a separate user of course. Never root, nor a
regular user. Be careful with symlinks jumping out of the tree.
Set rights to a minimum requirement. I use rw- r-- --- root:apache on
anything that does not need to be modified by the webserver. Consider
setting the immutable bit on critical files as well.

Chrooting the server and/or mysql is worth considering on any
production/high visibility server. (Securityfocus has great walkthroughs
on this). Of course only applicable if you have access to your own
server as root.

I'm not a big fan of too much interactivity and additional
user-checking. It gets complicated soon and may even give a false sense
of security if there's holes in it you may have overlooked.

Anything helpful here ? Hope so.
GL!

Sh.
--
Backbone Scoliosis

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация