Czy mogę wysłać na przykład ciąg lub inną informację do innego pliku .php bez jego ujawnienia [a więc nie przez GET, ale przez POST zgodny z tym, co wiem] bez użycia formularza?Wysyłanie danych POST bez formularza
Odpowiedz
Jeśli nie chcesz, aby Twoje dane były postrzegane przez użytkownika, należy użyć sesji PHP.
Dane w żądaniu pocztowym są nadal dostępne (i możliwe do manipulowania) przez użytkownika.
Zamówienie this tutorial na sesjach PHP.
to nie jest dobre rozwiązanie, także jeśli autor zaakceptował to jako obejście. również sesje są łatwiejsze do przejęcia niż wywoływanie postów (np. przez atak "człowiek w środku"). –
Dlaczego to jest złe rozwiązanie? Być może proces Samuela jest taki, że porwanie sesji nie jest problemem. Jedynym sposobem na naprawdę skuteczne porwanie sesji (w dyskretny sposób) jest użycie protokołu SSL dla wszystkich żądań związanych z sesją. Jeśli Samuel martwił się o wyciek danych, powinien użyć SSL. –
@zolex, co jest tak trudne w przechwytywaniu danych pocztowych? Siedzenie w kawiarni z uruchomieniem WireShark to wszystko, czego potrzebujesz do przejęcia danych POST. Odtworzyć żądanie z plików cookie i danych pocztowych, i jesteś dobry, aby przejść. Jeśli uważasz sesje za złe rozwiązanie, SSL jest jedynym dobrym rozwiązaniem. – riwalk
Możesz użyć AJAX do wysłania żądania POST, jeśli nie chcesz formularzy.
jQuery $.post sposób jest dość prosty:
$.post('/foo.php', { key1: 'value1', key2: 'value2' }, function(result) {
alert('successfully posted key1=value1&key2=value2 to foo.php');
});
zajrzyj do dokumentacji php na temat tych funkcji, które możesz wysłać za pomocą poczty.
fsockopen()
fputs()
lub po prostu użyć klasy jak Zend_Http_Client który opiera się również na Gniazdko conenctions.
znaleźć również neat example używając google ...
Wyślij swoje dane z SESJI zamiast postu.
session_start();
$_SESSION['foo'] = "bar";
Na stronie gdzie otrzymasz wniosek, jeśli koniecznie musisz danych post (niektóre dziwne Logic), można to zrobić Gdzieś na początku:
$_POST['foo'] = $_SESSION['foo'];
Dane post będzie ważny tak samo, jakby był wysłany z POST.
Następnie zniszcz sesję (lub po prostu odznacz pola, jeśli potrzebujesz sesji do innych celów).
Ważne jest, aby zniszczyć sesję lub anulować ustawienie pól, ponieważ w przeciwieństwie do POST, SESJA pozostanie ważna do momentu jej całkowitego zniszczenia lub zakończenia sesji przeglądarki. Jeśli tego nie zrobisz, możesz zaobserwować dziwne wyniki. Na przykład: używasz programu sesson do filtrowania niektórych danych. Użytkownik włącza filtr i pobiera przefiltrowane dane. Po chwili wraca do strony i oczekuje, że filtr zostanie zresetowany, ale tak nie jest: nadal widzi przefiltrowane dane.
Wystarczy użyć: file_get_contents()
// building array of variables
$content = http_build_query(array(
'username' => 'value',
'password' => 'value'
));
// creating the context change POST to GET if that is relevant
$context = stream_context_create(array(
'http' => array(
'method' => 'POST',
'content' => $content,)));
$result = file_get_contents('http://www.example.com/page.php', null, $context);
//dumping the reuslt
var_dump($result);
Reference: moja odpowiedź na podobne pytanie:
- 1. Wysyłanie żądania POST danych RAW za pomocą formularza HTML?
- 2. Wysyłanie formularza HTTP bez użycia 'Invoke-WebRequest'
- 3. Wysyłanie danych formularza z jquery ajax json
- 4. Wysyłanie danych z formularza do strony aspx
- 5. Wysyłanie pliku wraz z danymi formularza przez ajax post
- 6. asp mvc post nie wysyłający danych formularza
- 7. Zobacz żądanie danych wielostronicowych formularza POST
- 8. axios post request przesłanie danych formularza
- 9. Pobieranie lub wysyłanie danych z formularza za pomocą knockout.js
- 10. Wysyłanie żądania POST do zabezpieczonej akcji
- 11. jQuery POST dane formularza
- 12. Wysyłanie wiadomości e-mail z formularza html bez php
- 13. Wartości POST wyłączonych elementów formularza
- 14. Wysyłanie danych jquery do Express
- 15. Jak zatrzymać wysyłanie formularza zdalnego?
- 16. wysyłanie danych XML z wykorzystaniem protokołu HTTP POST w PHP
- 17. Wysyłanie danych przy użyciu POST w Pythonie do PHP
- 18. Wykonywanie żądania POST w Selenium bez wypełniania formularza?
- 19. Czytanie danych POST z formularza html wysłanych na serverocket
- 20. Wysyłanie danych formularza HTML do bazy danych sql za pośrednictwem php (przy użyciu mysqli)
- 21. wysyłania danych post z jQuery na przesyłanie formularza
- 22. Załaduj obraz przy użyciu danych formularza POST w Pythonie wniosków
- 23. Pobieranie danych POST za pomocą CakePHP bez formhelpera
- 24. Odśwież stronę, bez ponownego wysyłania danych POST (ASP.NET)
- 25. wysyłanie formularza po zaznaczeniu pola wyboru
- 26. Wysyłanie AJAX post Jquery w zastosowaniu szyn
- 27. Zatrzymaj wysyłanie żądania ajaxowego bez odświeżania strony
- 28. Wysyłanie JSON na żądanie POST z modernizacją
- 29. Czysta JavaScript wysyłać dane pocztowe bez formularza
- 30. Przykład cichego przesłania formularza POST (CSRF)
brzmi jak trzeba użyć sesje. – Gazler
Nie jest całkowicie jasne, skąd wysyłane są dane od i do. Czy jest to klient na serwer lub serwer na serwer lub serwer na inny serwer? – buggedcom
dobrze przekazać go z jednego pliku do drugiego na tym samym serwerze – Samuel