Оценете темата:
  • 0 гласа - средно 0
  • 1
  • 2
  • 3
  • 4
  • 5

PHP въпрос
#1

Използвам андроид приложение като клиент. То изпраща данни до PHP скрипт на сървър. До тук всичко работи добре. От време на време обаче, скрипта се пуска сам, предполагам от ботове, и това омазва някои неща на сървъра. Има ли как да предотвратя това стартиране, без клиента да е поискал. Мислих си да добавя към php параметър ?key=passord и да пращам тая парола от клиента, и в скрипта да проверявам дали е пратена. Това дали ще помогне? Някакви идеи? Имайте в предвид, че не съм много запознат с php и да обяснявате малко по като за начинаещи.
Цитирай
Аксесоари
#2

(2017-03-14, 12:46:01)yo_asakura написа:  Това дали ще помогне?

Да, ще помогне. Просто линк с "паролата" не трябва да има никъде в web-a, за да не го намерят ботовете.

btw, скоро ще пусна публична версия и на сървърната част на моя framework "Forge" (https://github.com/ogrebgr/forge-server) с която за Андроид програмистите ще е много лесно да създават web services, защото все пак използва Java (отделно, че е направен много по-просто от неща като Spring и подобни "ентерпрайз" сложнотии)
Цитирай
#3

Ами аз сега подавам параметър ?value=thedata и тоя линк го има само в андроид приложението, но пак по някакъв начин ботовете го намират. Как става това? Не съм много запознат...
Цитирай
#4

Приложението публикувано ли е в гугъл плей?
Цитирай
#5

да - Fibonacci Benchmark

п.п. аз това се чудя, ако подавам и паролата като параметър (както сега подавам данните) и в php да проверявам дали е подадена правилно, дали бота пак ще я намери.
Цитирай
#6

На твое място бих направил една md5 чексума на данните и бих я добавил като параметър, т.е. ще имаш нещо като ?param1=data&checksum=md5sumata.

После на сървъра първо сверяваш дали md5-та отговаря и чак тогава изпозлваш данните.

Това ще те предпази от ботове, но няма да те предпази, ако някой умишлено се опитва да ти прецака данните.
Цитирай
#7

@yo_asakura и как ще те спаси подаването на парола, като параметър от ботове?

Това което се опитваш да правиш не се прави с GET, а с POST. Всеки хостинг вече предлага от цпанела да си инсталираш безплатен ssl. Слагаш един basic http authentication, oбфускираш си кода с усер-а и пасс-а в андроида и си готов.

Всеки ученик ще ти види какво подаваш в гет и ще ти играе с данните, както си иска.
Цитирай
#8

как може да се види какво и къде подавам?
Цитирай
#9

Най-елементарния начин е да декомпилираш приложението (резултат в прикачения файл)
Другия да си прегледаш трафика, сигурно има и други начини ама в момента не се сещам, че съм на вино с ром :Big Grin ми е трудно да мисля малко Big Grin  

Втората ти грешка и то сериозна е да записваш всичко в 1 текстов файл, защо?


Прикачени файлове Миниатюри
   
Цитирай
#10

Защото, както казах, не съм много на ти с PHP и сметнах, че това е най-лесния вариант.
Цитирай
#11

Вместо да правиш гимнастика с PHP си сложи един robots.txt и в него

User-agent: *
Disallow: /

Това е ако смяташ че найстина е от ботове, лично мен ме съмнява.
Най правилния начин е с проверка или друга схема с GET, POST.

if($_POST){

}

Като не забравяш че GETработи с URL от адрес бара, тоест ако си задал параметът ?vvv няма да е трудно да се отгатне.



Цитирай
#12

а ако използвам POST, ако някой декомпилира сорс кода и види какво пращам (както споменаха горе), няма ли пак да може да се манипулира от този някой?
Цитирай
#13

Използвал ли си ProGuard?
Цитирай
#14

ами сложих minifyEnabled true според документацията, но разлика нямаше. и в двата случая мога да декомпилирам и видя кода
Цитирай
#15

(2017-03-16, 11:16:51)yo_asakura написа:  а ако използвам POST, ако някой декомпилира сорс кода и види какво пращам (както споменаха горе), няма ли пак да може да се манипулира от този някой?

Ако кода не ти е обфускиран (над мен са споменали ProGuard) дали е ПОСТ или ГЕТ е все тая и двете са елементарно лесни за манипулиране, дори не е нужно да декомпилираш сорса на приложението.

За да си сигурен за всеки рекуест правиш както ти казва Ogre_BGR пращаш някакава чек сума (подаваните параметри + някакъв токен). Токена го знае само php скрипта ти + андроид приложението, което трябва да е обфускирано за да не ти го вземат след декомпилиране на apk-файла. И не на последно място използвай https.
Цитирай
#16

Добре! Сега кажете повече за обфускиране на кода, защото четох тук там, активирах proguard-а с minifyEnabled true, но реално няма никаква разлика при декомпилация. Пак мога да видя в кода какво пращам. И реално, ако човек види какво пращам, дори и някаква чексума да съм сложил, пак ще може да се намеси и да навреди ако има желание. Вярно, вече нямам проблем с ботовете като бутнах някои неща, но ако човек иска да навреди май за сега нямам решение.
Цитирай




Потребители разглеждащи темата: 1 гост(и)