Ограничить форму POST только Unity - PullRequest
0 голосов
/ 26 августа 2018

Есть ли способ проверить, что форма отправлена ​​из Unity? Например, у меня есть форма (кстати, с использованием Codeigniter), которая регистрирует пользователя. Я хочу убедиться, что данные POST поступают из сборки WebGL Unity и не доступны напрямую, перейдя на страницу формы.

Это вещь, которая вещь?

1 Ответ

0 голосов
/ 26 августа 2018

Ответ на этот вопрос действительно зависит от того, как вы этого хотите.

Есть ли способ проверить, что форма отправлена ​​из Unity?

Да

Вы можете использовать заголовок, чтобы установить для «User-Agent» значение «WEBGL-BUILD» или любое другое уникальное значение:

var uwr = new UnityWebRequest(url, "POST");
uwr.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
uwr.SetRequestHeader("User-Agent", "WEBGL-BUILD");
yield return uwr.SendWebRequest();

или используйте форму для отправки значения, которое показывает, что запрос получен от WebGL Build:

WWWForm form = new WWWForm();
form.AddField("User-Agent", "WEBGL-BUILD");
UnityWebRequest uwr = UnityWebRequest.Post(url, form);
yield return uwr.SendWebRequest();

Затем проверьте заголовок или форму на сервере, чтобы убедиться, что они совпадают.

Ограничить форму POST только Unity

Нет .

Вы не можете этого сделать. Причина в том, что люди могут это изменить. Даже с двумя методами, которые я упомянул выше, любой может по-прежнему сделать реинжиниринг вашей программы и выяснить, что вы отправляете на сервер, затем создать поддельный запрос на любом языке программирования и отправить его на сервер.

Реализация того, что я сказал выше, только усложнит злоупотребление вашим сервером, но не может полностью ограничить форму POST только Unity. Просто придерживайтесь аутентификации на основе токенов. Еще лучше использовать oauth2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...