Mam podążał za fragmentem kodu PHP i JavaScript, w którym robię jQuery Ajax Call, aby uzyskać dane z PHP i pokazać go w HTML.

PHP code

<?php

myfunction();

function myfunction()
{
 $myvar = $_POST['q']." how are you?";
 $myvar2 = $_POST['z'];
 echo $myvar."\n".$myvar2;
}
?>

HTML code

<div id="mydiv"></div>

Javascript code

var data =" hello world";
var data2=" hello all";
function run()
{
 $.ajax(
               {
                   url: 'myscript.php',
                   data: {'q': data,'z':data2},
                   type: 'post',
                   success: function(output) 
                   {
                          //alert(output);
                          document.getElementById("mydiv").innerHTML += output; //add output to div  
                   }
                }
            );
}

Powyżej kodu działa dobrze.

Chcę zabezpieczyć ten telefon Ajax, aby zapobiec go od hakerów, ponieważ wykonuję połączenie AJAX, który jest widoczny dla wszystkich. Ten kodeks jest podatny na atak hakerów. Moje pytanie brzmi, a gdzie powinienem narzucić dodatkowe kontrole, aby mój telefon był bezpieczny?

Jedną rzeczą, którą wiem, że powinienem użyć następującego fragmentu kodu w moim pliku PHP

if (!$_POST['q'] && !$_POST['z'])
{
  exit;
}|
else
{
  myfunction(); //call myfunction only if page is posted
}

Jakie dodatkowe czeki powinienem używać w plikach PHP i JavaScript?

1
user1556433 24 listopad 2013, 07:26

2 odpowiedzi

Najlepsza odpowiedź

Używasz postu, który jest dobry.

  1. Więcej można użyć "sesji" dla bezpieczeństwa.
  2. W przypadku zabezpieczeń kodu można umieścić swoje funkcje i inny ważny kod w kilku różnych plikach PHP i dołączyć je w głównym pliku. Aby utrzymać swój kod widoczny z bezpośrednio.
2
user1788542user1788542 24 listopad 2013, 03:35

Jest mnóstwo sztuczek, które używają hakerów, więc po prostu musisz utrudnić trudno / czas, że nagroda nie jest warta inwestycji.

Najpierw nigdy nie powinieneś powtórzyć coś, co przyszło na stanowisku. Wiadomo, że hakerzy wykonują wszelkiego rodzaju zastrzyki z taką dziurą.

Aby uniknąć, który po prostu najpierw unika wartość.

Aby użyć MySQL: mysqli_real_escape_string.

Po powtórzeniu HTML ({X0}} lub print) Użyj: {{x2} }.

Do wykonania kodu z {x0}} użyj escapeshellcmd i escapeshellarg.

Przykład:

<?php
    define('CHARSET', 'ISO-8859-1');
    define('REPLACE_FLAGS', ENT_COMPAT | ENT_XHTML);

    function html($string) {
        return htmlspecialchars($string, REPLACE_FLAGS, CHARSET);
    }
    $myvar = $_POST['q']." how are you?";
    $myvar2 = $_POST['z'];
    echo html($myvar."\n".$myvar2);

?>
4
Goran 24 listopad 2013, 03:44