Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημέρες! :-)

 

Μια ερώτηση σχετικά με PHP. Λοιπόν, χρησιμοποιώ την ακόλουθη function για να getάρω τον κώδικα ενός url/web page:

 

function get_web_page($url) {
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
CURLOPT_ENCODING => "", // handle compressed
CURLOPT_USERAGENT => "test", // name of client
CURLOPT_AUTOREFERER => true, // set referrer on redirect
CURLOPT_CONNECTTIMEOUT => 30, // time-out on connect
CURLOPT_TIMEOUT => 120, // time-out on response
);

$ch = curl_init($url);
curl_setopt_array($ch, $options);

$content = curl_exec($ch);

curl_close($ch);

return $content;
}


// $url_final = a url

$response = get_web_page($url_final);
if (strpos($response, 'something') === false)
{
        exit('0');
}

 

Όπως καταλαβαίνετε, θέλω "πάση θησεία" να εντοπίσω αν μέσα στον κώδικα της σελίδας, υπάρχει το 'something'.

 

Το πρόβλημα: αν το 'something' επιστρέφεται δυναμικά μέσω JavaScript μέσα στη σελίδα (που κανονικά θα φόρτωνε ένας browser), δεν εντοπίζεται στο $response.

 

Καμιά ιδέα για να πετύχω αυτό που θέλω;

Θα προτιμούσα μία server side λύση (χωρίς να χρειαστεί πχ να κάνω εγκατάσταση στον server κάποιο ιδιαίτερο package), καθώς ουσιαστικά μιλάμε για ένα σύστημα verification, οπότε αν είναι εντελώς javascript, δεν θα έχει νόημα και ασφάλεια για μένα.

 

Ψάχνοντας στο διαδίκτυο διάβασα για το PhantomJS, αλλά αν δεν κάνω λάθος, είναι καθαρά JavaScript script;

Δημοσ.

 

Όπως καταλαβαίνετε, θέλω "πάση θησεία"  ...

 

Ξέρω ότι γίνομαι σπαστικός αλλά επειδή όλα είναι γλώσσες, το σωστό στη συγκεκριμένη γλώσσα είναι "πάσει θυσία"  ;)

 

Όσον αφορά στην ερώτηση σου, μέσω cURL παίρνεις μόνο το markup του HTML κώδικα οπότε δεν πρόκειται να πάρεις JS output values.

 

Σου προτείνω να χρησιμοποιήσεις το PhantomJS (ναι προφανώς είναι JS library) όπως σωστά ανέφερες και να το ενσωματώσεις για να κάνει dump τα δεδομένα που χρειάζεσαι και μετά να βρεις το string που θες παρόλο που θα προτιμούσες server-side λύση.

  • Like 1
Δημοσ.

Thanks για τη διόρθωση :-D

 

Λοιπόν, κοιτάξτε πως έχει το πρόβλημα: πρόκειται για μια λειτουργία όπου ένας χρήστης του διαδικτύου, επιβεβαιώνει ότι του ανήκει ένα account σε εξωτερικό site. Έτσι, του ζητείται να τοποθετήσει έναν συγκεκριμένο κωδικό/συμβολοσειρά, ας πούμε στο about της σελίδας του. Εν συνεχεία, η PHP μέσω cURL τσεκάρει αν η συμβολοσειρά βρίσκεται στο about κι αν ναι, γίνονται διάφορες διεργασίες μέσω PHP (εισαγωγή σε βάση δεδομένων κτλ).

 

Πολύ φοβάμαι ότι αν κάνω το verification μέσω JavaScript, ο χρήστης θα μπορεί να ξεγελάσει εύκολα το σύστημα. Κάνω λάθος;

Αν έχετε υπόψιν σας κάποιον τρόπο να το κάνω ας πούμε μέσω συνδυασμού JavaScript (PhantomJS) + PHP και παράλληλα να μην "μπάζει", μπορείτε να μου πείτε. :-)

Δημοσ.

Thanks για τη διόρθωση  :-D

 

Λοιπόν, κοιτάξτε πως έχει το πρόβλημα: πρόκειται για μια λειτουργία όπου ένας χρήστης του διαδικτύου, επιβεβαιώνει ότι του ανήκει ένα account σε εξωτερικό site. Έτσι, του ζητείται να τοποθετήσει έναν συγκεκριμένο κωδικό/συμβολοσειρά, ας πούμε στο about της σελίδας του. Εν συνεχεία, η PHP μέσω cURL τσεκάρει αν η συμβολοσειρά βρίσκεται στο about κι αν ναι, γίνονται διάφορες διεργασίες μέσω PHP (εισαγωγή σε βάση δεδομένων κτλ).

 

Πολύ φοβάμαι ότι αν κάνω το verification μέσω JavaScript, ο χρήστης θα μπορεί να ξεγελάσει εύκολα το σύστημα. Κάνω λάθος;

Αν έχετε υπόψιν σας κάποιον τρόπο να το κάνω ας πούμε μέσω συνδυασμού JavaScript (PhantomJS) + PHP και παράλληλα να μην "μπάζει", μπορείτε να μου πείτε.  :-)

 

Κοίτα, γενικότερα το όλο σκεπτικό μπάζει εύκολα, πχ με το να μπει κάποιος κωδικός/συμβολοσειρά στη σελίδα αφού θα είναι ορατό από οποιοδήποτε.

 

Παίξε με crossdomain ajax requests και validators μεταξύ των 2 websites και βεβαιώσου ότι στο website που έχει τα accounts επιτρέπει τα CORS (προϋποθέτει να έχεις πρόσβαση στον κώδικα του).

 

Είναι αρκετή δουλειά αλλά είναι πιο ασφαλής τρόπος. Αυτή τη γενική κατεύθυνση μπορώ να σου δώσω, πρέπει να το ψάξεις λίγο όμως.

Δημοσ.

Λοιπόν, κοιτάξτε πως έχει το πρόβλημα: πρόκειται για μια λειτουργία όπου ένας χρήστης του διαδικτύου, επιβεβαιώνει ότι του ανήκει ένα account σε εξωτερικό site.

Σε ποιό site? Δεν υποστηρίζει αυτό το site OAuth? Ούτε έχει κάποιο σχετικό JS API?

 

Έτσι, του ζητείται να τοποθετήσει έναν συγκεκριμένο κωδικό/συμβολοσειρά, ας πούμε στο about της σελίδας του.

Και γιατί δε μπορεί να το κάνει αυτό χωρίς javascript?

Δημοσ.

Ξέρω ότι γίνομαι σπαστικός αλλά επειδή όλα είναι γλώσσες, το σωστό στη συγκεκριμένη γλώσσα είναι "πάσει θυσία"  ;)

 

 

πάση θυσία, με ήττα... δοτική του θηλυκού πάσα.

Δημοσ.

 

Όπως καταλαβαίνετε, θέλω "πάση θησεία"  ...

 

Ξέρω ότι γίνομαι σπαστικός αλλά επειδή όλα είναι γλώσσες, το σωστό στη συγκεκριμένη γλώσσα είναι "πάσει θυσία"   ;)

 

πάση θυσία, με ήττα... δοτική του θηλυκού πάσα.

 

σωστά αλλά φαντάζομαι εννοείς το γράμμα ήτα με ένα ταυ και όχι την ήττα με δύο ταυ

 

... ακόμα γελάω και με τους τρεις μας  :-D

  • Like 1
Δημοσ.

Σε ποιό site? Δεν υποστηρίζει αυτό το site OAuth? Ούτε έχει κάποιο σχετικό JS API?

 

 

Και γιατί δε μπορεί να το κάνει αυτό χωρίς javascript?

Το addon που έχω φτιάξει, λειτουργεί εντάξει με facebook και youtube (page verification με έλεγχο της συμβολοσειράς που έχει βάλει ο ιδιοκτήτης στο about του για να επιβεβαιώσει στο site ότι του ανήκει το account). Το πρόβλημα υπάρχει με το twitch.tv όμως, που για κάποιο λόγο - μάλλον λόγω του ότι η σελίδες του φορτώνουν με JavaScript), δε μπορεί να εντοπίσει τη συμβολοσειρά με cURL get content.

Δημοσ.

σωστά αλλά φαντάζομαι εννοείς το γράμμα ήτα με ένα ταυ και όχι την ήττα με δύο ταυ

 

... ακόμα γελάω και με τους τρεις μας  :-D

 

Όχι, μιλούσα για την ήττα τη δική σου ...  :mrgreen:

Άστα να πάνε Πύρρο!

  • Like 1
Δημοσ.

Δεν ξέρω τι ακριβώς κάνεις αλλά γενικά για να αποδείξεις ότι ελέγχεις ένα account η πιο σωστή και στρωτή μέθοδος είναι μέσω OAuth, που υποστηρίζουν όλα τα site που λες (π.χ. Twitch). Αυτή είναι η στάνταρ μέθοδος που δουλεύει, με μικρές παραλλαγές, "παντού".

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...