Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions php/cookies_and_access_control/addUser.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,15 @@
$userName = $_POST["uName"];
$password = $_POST["myPassword"];

$pdo = new PDO('mysql:host=192.168.64.2;db=lab10', 'lab10', 'lab10');
// Hash the password securely
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);

$queryString = "INSERT INTO 'users' ('username', 'password') VALUES ('".$userName."','".$password."')";
$pdo = new PDO('mysql:host=192.168.64.2;db=lab10', 'lab10', 'lab10');

// Use prepared statements with parameter binding to prevent SQL injection
$queryString = "INSERT INTO users (username, password) VALUES (:username, :password)";
$result = $pdo->prepare($queryString);
$result->bindParam(':username', $userName);
$result->bindParam(':password', $hashedPassword);
$result->execute();
?>
11 changes: 8 additions & 3 deletions php/cookies_and_access_control/doLogin.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,20 @@
*/

$pdo = new PDO('mysql:host=192.168.64.2;db=lab10', 'lab10', 'lab10');
$queryString = "SELECT * FROM users WHERE username = '".$userName."'";

// Use prepared statements to prevent SQL injection
$queryString = "SELECT * FROM users WHERE username = :username";
$result = $pdo->prepare($queryString);
$result->bindParam(':username', $userName);
$result->execute();

$validUser = False;

for ($i=0; $row = $result->fetch(); $i++) {
if ($row['password'] === $password) {
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
// Verify password using password_verify instead of plaintext comparison
if (password_verify($password, $row['password'])) {
$validUser = True;
break; // Password matched, no need to keep checking
}
}

Expand Down
4 changes: 2 additions & 2 deletions php/cookies_and_access_control/lab10.sql
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@ SET time_zone = "+00:00";

CREATE TABLE `users` (
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL
`password` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `users`
--

INSERT INTO `users` (`username`, `password`) VALUES
('testtesttest', 'hello');
('testtesttest', '$2y$10$xNNaJ0UZqqxa8mHgy2e.7.KWaMGEIsZFmRb.FZQ5pzvSMWXH1/A1G');
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
Expand Down