PageRenderTime 25ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/web-security/assignment1/answer with fix/sqlinjection/index.php

https://bitbucket.org/mkjinesh/pcs
PHP | 57 lines | 52 code | 5 blank | 0 comment | 10 complexity | 9a1e38dcd581c066bde427f928466b70 MD5 | raw file
  1. <?php
  2. error_reporting(0);
  3. define('ok',1);
  4. $page = "home.php";
  5. mysql_connect("localhost", "root", "amma") or die('Error');
  6. mysql_select_db("task");
  7. if (isset($_POST['submit'])) {
  8. $q = mysql_query("SELECT * FROM users WHERE login = '".$_POST['login']."' AND password = '".md5($_POST['pwd'])."'");
  9. if (mysql_num_rows($q) == 0) {
  10. echo '<h1>Wrong login or password!</h1>';
  11. } else {
  12. setcookie('auth', base64_encode($_POST['login'].'|'.$_POST['pwd']));
  13. header("Location: ./index.php");
  14. }
  15. die();
  16. }
  17. if (isset($_COOKIE['auth'])) {
  18. $auth = base64_decode($_COOKIE['auth']);
  19. list($login, $password) = explode('|', $auth);
  20. $q = mysql_query("SELECT * FROM users WHERE login = '".$login."' AND password = '".md5($password)."'");
  21. if (mysql_num_rows($q) != 0) {
  22. $r = mysql_fetch_assoc($q);
  23. $q = mysql_query("SELECT * FROM ".$r['status']."_info") or die('Error');
  24. $r = mysql_fetch_assoc($q);
  25. extract($r);
  26. echo 'Hello, '.$login.'!<br>Your country: '.$country.'<br>City: '.$city.'<br>Phone number: '.$phone.'<br>Secret PIN-code: '.$pin.'<br>';
  27. echo '<br><a href="?page=home.php">home</a>';
  28. echo '<br><a href="?page=news.php">news</a>';
  29. echo '<br><a href="?page=download.php">download</a>';
  30. echo '<br><a href="?page=users.php">Users</a><br><br>';
  31. $whitelist = array('news.php', 'home.php', 'download.php','users.php');
  32. if (isset($_GET['page'])) {
  33. if (in_array($_GET['page'], $whitelist))
  34. $page = $_GET['page'];
  35. }
  36. include("./inc/".$page);
  37. echo "<br><br>Designed by Bithin";
  38. die();
  39. } else {
  40. setcookie('auth',"");
  41. }
  42. }
  43. ?>
  44. <html>
  45. <body>
  46. <form method="post" action="index.php">
  47. Login:<br><input type="text" name="login" /><br>
  48. Password:<br><input type="text" name="pwd" /><br>
  49. <input type="submit" name="submit" value="Go" />
  50. </form>
  51. </body>
  52. </html>