Skip to main content

Hard-Coded Authentication

This is the simplest PHP authentication to implement but has the problem of being limited on flexibility
and high on maintenance cost. It literally places the username and password into the script as seen in the
following example:


<?php
if (($_SERVER['PHP_AUTH_USER'] != 'root') ||
($_SERVER['PHP_AUTH_PW'] != 'training')) {
header('WWW-authenticate: Basic Realm="Photo Album"');
header('HTTP/1.0 401 Unauthorized');
print "You must provide a valid username and password!";
exit;
}
// Remainder of script
?>

In this example, the first portion of the script reads in the username and password variables. If the variables
do not match the hard-coded user name or password, then the script prints out some HTTP header
information and text saying that the username and/or password was not valid. It then exits the script and
terminates the rest of the script processing. If, though, the username and password are correct, this portion
of the script is ignored and the remainder of the script is executed.

Limitations of Hard-Coding

Although this method is quick and easy, it has a number of drawback that make it unrealistic for
applications in production.

• Using the same username - As the code stands, every user requiring access to this web page would
need to use the same login name and password. This is not the way most applications in production
work. The majority of applications in production use the username to provide specific preferences
and specific access to resources that could not be done if everyone is using the same username. Of
course, additional usernames and passwords could be coded in, but that is just nonsensical and leads
to poor coding techniques.

• Maintenance nightmare - If the username and password are compromised, a new username and
password have to be hard-coded in and everyone using that username and password have to be
notified of the change. Anytime that code has to be touched leads to the greater likelihood that
something else could be inadvertently changed causing the script to malfunction. Avoiding touching
code in production is a best practice for reliability of services.

Comments

Popular posts from this blog

PHP INTRODUCTION

                     PHP  (recursive acronym for  PHP: Hypertext Preprocessor ) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. PHP stands for  P HP:  H ypertext  P reprocessor PHP is a server-side scripting language, like ASP PHP scripts are executed on the server PHP supports many databases (MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL, Generic ODBC, etc.) PHP is an open source software PHP is free to download and use Why PHP? PHP runs on different platforms (Windows, Linux, Unix, etc.) PHP is compatible with almost all servers used today (Apache, IIS, etc.) PHP is FREE to download from the official PHP resource:  www.php.net PHP is easy to learn and runs efficiently on the server side What can PHP do? Anything. PHP is mainly focused on server-side scripting, so you can...

Storage Engine Breakdown

The following diagram represents a simplified view of the MySQL server and its interaction with the  storage engines. The following properties are storage engine dependant: • Storage Medium – Each table uses its own method of storing the data it contains. • Transactional Capabilities – Certain storage engines handle transactional processing which ensures that integrity of a database is maintained during the processing of multiple SQL statements.

SQL Joins

1. Login in to the mysql client using the login name and password provided by your instructor (if not already logged in). 2. View the existing databases that the MySQL Server is maintaining. SHOW DATABASES; 3. Utilize the photo_album database. USE photo_album; ---- If Need be, recreate the database and load the SQL data in that will be used for this lab CREATE DATABASE photo_album; SOURCE /tmp/photo_album.sql; 4. Query the database to display the active primary customer (email, first and last name) and all the associated active login names associated with that customer. SELECT customers.email_customer, customers.fname, customers.lname, logins.login_name  FROM customers, logins WHERE customers.email_customer = logins.email_customer  AND customers.active_customer = 'True'  AND logins.active_login = 'True';