Android GPS i mysql.

0

Witam.
Napisałem coś ale GPS tracker.
Pobieranie danych o lokalizacji ze smartphona (locationmanager, onlocationchange -> umieszczenie ich do bazy za pomocą skryptu php na serwerze.
Tylko jest jedna wada baza musi być wystawiona na zewnątrz i na serwerze jest skrypt php który odbiera dane z aplikacji i zapisuje je w bazie.
Jeżeli ktoś pozna adres serwera i nazwę skryptu może swobodnie wprowadzać dane do bazy a chciałbym tego uniknąć.
Odbywa się to mniej więcej tak

public void onLocationChanged(final Location location) {
                Intent i = new Intent("location_update");
                //i.putExtra("coordinates",location.getLongitude()+" "+location.getLatitude());
                //Intent i1 = new Intent("latitude_update");
                //Intent i2 = new Intent("longitude_update");

                i.putExtra("latitude", location.getLatitude());
                i.putExtra("longitude", location.getLongitude());
                sendBroadcast(i);
                la_string = Double.toString(location.getLatitude());
                lo_string =Double.toString(location.getLongitude());
 requestQueue = Volley.newRequestQueue(getApplicationContext());

                StringRequest request = new StringRequest(Request.Method.POST, insertUrl, new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        System.out.println(response.toString());
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                }) {

                    @Override
                    protected Map<String, String> getParams() throws AuthFailureError {
                        Map<String,String> parameters  = new HashMap<String, String>();
                        parameters.put("la",la_string);
                        parameters.put("lo",lo_string);
                        parameters.put("time", now());


                        return parameters;
                    }
                };
                requestQueue.add(request);

            }
<?php
    if($_SERVER["REQUEST_METHOD"]=="POST"){
    require 'connection.php';
    insertloc();}
    
    function insertloc(){
    global $connect;
        $la = $_POST["la"];
        $lo = $_POST["lo"]; 
        $time = $_POST["time"];
        
        
        $query="INSERT INTO gps(la,lo,time) VALUES ('$la','$lo','$time')";
        mysqli_query($connect,$query) or die (mysqli_error($connect));
 
   mysqli_close($connect);
   }
?>

Czy można to jakoś zabezpieczyć.
Albo może jakiś serwer pośredniczący ?

Chodzi mi o to że chciałbym wysyłać lokalizację urządzenia na serwer co jakiś interwał czasowy i aby te dane zapisywały się w bazie.
Nie wiem jak to ugryźć.

0

Robiłem kiedyś coś podobnego i zrobiłem po prostu logowanie do api. Wraz z wysyłaniem danych wysyłasz jakiś ApiKey i sprawdzasz czy połączenie jest rzetelne. W tym problem, że wtedy często odpytujesz bazę o sprawdzenie ApiKey, a to rozwiązałem już za pomocą paczki danych, a nie pojedynczych lokalizacji. No chyba, że Ci zależy na natychmiastowej informacji o zmianie położenia, a nie tylko o trasie (tudzież ostatnim położeniu), ale wtedy skłaniałbym się bardziej do połączenia tcp.

1 użytkowników online, w tym zalogowanych: 0, gości: 1