Re: Re: Security, Late Nights and Overall Paranoia

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Jul 8, 2005, at 4:21 AM, <nick.telford@xxxxxxxxxxxx> wrote:

Personally, I don't think it's a bad idea at all. The best way (and probably ONLY real way) to achieve decent security would be to limit the subset of tags the user can post. Best way to achieve this is to use your own tagging system (e.g. [p] instead of <p>) this will allow you to strip_tags to protect against injections and limit the tags the author can post (to protect against injection-through-conversion attacks).

Use a pcre replace to replace all occurances of the allowed tags with the HTML equivilents upon page rendering (it's usually best to sore your tag format in the database instead of the raw HTML).

As for SSL, is it really needed? The data would, in most cases, not be considered highly important. It would just leverage another server requirement on the end-user. If you're writing something for public consumption, it needs to be as flexible as possible.

Besides, SSL has very little to do with PHP and is therefore not really worth thinking about. In order to include support for running the Administration of the CMS through SSL, simply allow the Admin pages to run on a different host.

Last word, IP and User Agent tracking are more useless than MAC filtering on firewalls. In the long run, it'll simply add more overhead to your application and produce no useful information (unless you're using it purely for statistics).#

PS: This is going through web-mail, so there's a good chance it might not reach the list.

Unless I'm really missing something important, for 'this' particular part of the application, any BBCode/Tag stripping/rewriting scheme would be useless since what they will be editing is the actual templates that make the page, therefore all tags
would have to be allowed.

It's not the legitimate user I'm worried about doing something wrong, it's that if it's possible for a legitimate user to do this,
then some "Bad Guy" somewhere "may" be able to do this too.

I've pretty much eliminated the possibility of someone using say cURL or some other mechanism to post information to the form processor directly. If they can guess two md5 hashes of two different random numbers that may or may not be set to allow the transaction as well as the ip/user agent associated with one of the numbers, then nothing I do will keep them out because they are GOD, or have a _lot_ of time on their hands. Plus, the clients account will have more than likely been shut down for going over their bandwidth quota from the attempts.

[If I'm wrong in my assumptions here, someone please slap me in the head]

What I'm worried about is someone grabbing a valid cookie id, and in the short time-span that it _is_ valid, being able to pull up the actual post form, which will then give them the second number and the ip/user agent, and "legitimately" posting malicious code. So yes, SSL is necessary at this point to try to keep that cookie secret. If it can, which is what I'm being paranoid about. This is a weak spot in the code "because" I have to trust that the user is who they say they are, all things considered. And at this point, I'm relying on SSL to be the security "rock" that plugs up this hole.

Is SSL enough to keep the cookie safe?

Is it absolutely stupid to allow this, even if there will only ever be one username/password combo that will be allowed to access this part? Other parts of the admin console will be open to other users though.

The actual web site, ie the pages created and maintained by the application, is open to the public and there is no SSL there, no cookies or info other than the html request/response of a 'normal' site.

Edward Vermillion
evermillion@xxxxxxxxxxxx

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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux