php-library.com
 -Home
  
Documentation
-PHP Manual>
Table of contents
Copyright
Preface
Getting started
Language reference
Security
Features
Function reference
Zend API
PHP API:Interfaces for extension writers
FAQ
Appendixes

-Pear Manual>
Table of contents
Copyright
Preface
About this manual
Structure of manual
I) About PEAR
 1. Introduction
 2 Installation
 3 Support
 4 Coding standards
 5 Contributing
 6 FAQ
II) Developer Guide
 7 Introduction
 8 PEAR's meaning for developers
 9 Contributing your own code
 10 The package definition file package.xml
 11 Releasing a package
 12 Supporting PEAR development
III) Core components
 13 PEAR base classes
 14 PPM classes
IV) Packages
 15 Authentication
 16 Benchmarking
 17 Caching
 18 Configuration
 19 Console
 20 Database
 21 Date & time
 22 Encryption
 23 File formats
 24 File System
 25 HTML
 26 HTTP
 27 Images
 28 Logging
 29 Mail
 30 Math
 31 Networking
 32 Numbers
 33 Payment
 34 PEAR
 35 PHP
 36 Science
 37 System
 38 Text
 39 XML
V) PECL packages
 I. Advance PHP debugger
 II. PHP bytecode compiler
 III. Imagick
 IV. KADM5
 V. Radius
 VI. Paradox file access
 VII. Satellite CORBA client extention
 VIII. PostgreSQL session save handler
 IX. Soap
 X. SPPLUS payment system
 XI. Net_Gopher
 XII. oggvorbis

-PHP-GTK Manual>
Table of contents
Copyright
Preface
PHP-GTK userguide
I) Introduction to PHP-GTK
 1. What is PHP-GTK?
 2. What is PHP?
 3. What is GTK+?
 4. Acknowledgements
II) Getting started
 1. Getting the lastest version
 2. Installing PHP-GTK under Windows
 3. Installing PHP-GTK under Unix
 4. How to use PHP-GTK
III) Basic elements
 1. Widgets & containers
 2. Signals & callbacks
PHP-GTK tutorials
I) Hello world tutorial
PHP-GTK reference
I) GTK classes
II) GDK clasesse
III) GTK enums
IV) GDK enums
V) Glade classes
VI) Scintilla classes
Appendix
I) PHP-GTK credits
II) PHP-GTK documentation credits
III) GNU free documentation license
IV) Symbolic names for keys in PHP-GTK
 
More stuff here
 -Contact Us
 -Links
 -
Sitemap
 
 
 
 

Chapter 15. Security

PHP is a powerful language and the interpreter, whether included in a web server as a module or executed as a separate CGI binary, is able to access files, execute commands and open network connections on the server. These properties make anything run on a web server insecure by default. PHP is designed specifically to be a more secure language for writing CGI programs than Perl or C, and with correct selection of compile-time and runtime configuration options, and proper coding practices, it can give you exactly the combination of freedom and security you need.

As there are many different ways of utilizing PHP, there are many configuration options controlling its behaviour. A large selection of options guarantees you can use PHP for a lot of purposes, but it also means there are combinations of these options and server configurations that result in an insecure setup.

The configuration flexibility of PHP is equally rivalled by the code flexibility. PHP can be used to build complete server applications, with all the power of a shell user, or it can be used for simple server-side includes with little risk in a tightly controlled environment. How you build that environment, and how secure it is, is largely up to the PHP developer.

This chapter starts with some general security advice, explains the different configuration option combinations and the situations they can be safely used, and describes different considerations in coding for different levels of security.

General considerations

A completely secure system is a virtual impossibility, so an approach often used in the security profession is one of balancing risk and usability. If every variable submitted by a user required two forms of biometric validation (such as a retinal scan and a fingerprint), you would have an extremely high level of accountability. It would also take half an hour to fill out a fairly complex form, which would tend to encourage users to find ways of bypassing the security.

The best security is often inobtrusive enough to suit the requirements without the user being prevented from accomplishing their work, or over-burdening the code author with excessive complexity. Indeed, some security attacks are merely exploits of this kind of overly built security, which tends to erode over time.

A phrase worth remembering: A system is only as good as the weakest link in a chain. If all transactions are heavily logged based on time, location, transaction type, etc. but the user is only verified based on a single cookie, the validity of tying the users to the transaction log is severely weakened.

When testing, keep in mind that you will not be able to test all possibilities for even the simplest of pages. The input you may expect will be completely unrelated to the input given by a disgruntled employee, a cracker with months of time on their hands, or a housecat walking across the keyboard. This is why it's best to look at the code from a logical perspective, to discern where unexpected data can be introduced, and then follow how it is modified, reduced, or amplified.

The Internet is filled with people trying to make a name for themselves by breaking your code, crashing your site, posting inappropriate content, and otherwise making your day interesting. It doesn't matter if you have a small or large site, you are a target by simply being online, by having a server that can be connected to. Many cracking programs do not discern by size, they simply trawl massive IP blocks looking for victims. Try not to become one.

 
Network Sites
Domain registration : Register domain name from $5.95
Domain name registration or transfer domain name from $5.95/yr. Includes comprehensive free services such as URL/Email forwarding.
Website hosting : cheap web hosting from $8.95
Website hosting service for single or multiple domain names for as low as $2 per domain.
Cheap domain name registration by cheap domain registrar
Domain name registration and transfer service by Cheap Domain Name Registrar.

 


www.PHP-library.com