Я использую функцию $ _GET в php для выполнения функций для моего Java-сервера.
Сайт похож на это: http://api.somewebsite.com/perform/function.php?authkey1=randomMD5&authkey2=randomMD5¶meters=something
Где переменные authkey1 и authkey2 представляют собой случайным образом сгенерированный MD5. Сценарий PHP подключается к MySQL, и я уже предотвратил инъекцию. Однако, прежде чем что-либо еще анализируется кодом, URL должен включать эти 2 ключа authkeys, иначе они получат сообщение с сообщением «Неправильная аутентификация».
Вот пример того, что делает мой код:
// Security key check
$key1 = "skghlskfhgj42u6928749856478937683471095sndgfnsvnrandom";
$key2 = "dbnksgh794ytowhjklgn934ngmsnnmlrj9096345u075u80375ngsr";
$g_key1 = $_GET['authkey1'];
$g_key2 = $_GET['authkey2'];
if (empty($g_key1) || empty($g_key2)) {
die("Improper authorization");
}
if ($g_key1 != $key1 || $g_key2 != $key2) {
die("Improper authorization");
}
// If authentication passes, move on to other functions
Является ли этот метод безопасным или нет? Благодаря!
Я знаю, что это не MD5 в $ key1 и $ key2. Это просто пример. – user3132865
Нет, его можно кэшировать. –
Использование MD5-хешированных строк на самом деле не имеет никакого значения здесь, не так ли? Вы можете использовать любую старую случайную строку. Тем не менее, это несколько безопасно - за исключением того, что URL-адрес может регистрироваться в пути, в прокси-серверах и в журнале доступа вашего собственного сервера. Я бы не использовал его для обеспечения банковской транзакции, но для многих других менее чувствительных применений это нормально. –