CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

The remote server returned an error: (403) Forbidden

[JVC]Riquezoune
[JVC]Riquezoune
Niveau 10
21 août 2018 à 20:18:59

Bonjour !

Il y a bien 3 forums différents où mon problème peut être posté, mais avec ce problème qui est déjà arrivé, je sais qu'il s'agit d'une modification à faire sur ma distribution Debian 9 !

Contexte :

Je fais tourner une application .exe via MONO (plugin C# pour un jeu)
Ce plugin appel une page PHP dans var/www/html/WebServerStats/ , qui ensuite appele du SQL, et renvoit la réponse au plugin C#.
Le plugin, la page PHP et la database sont tous sur le même VPS (localhost donc)

Problème : Lors de l'appel C#-> PHP, je recois l'erreur "The remote server returned an error: (403) Forbidden"

Correctifs testés :

- Ajouter les crédentials dans le plugin c# pour reconnaitre l'application.
- Auparavent, j'ai eu le même problème, et à force d'essayer plein de solutions d'internet, ça a finit par marcher... mais tout le monde avait accès au site de l'extérieur (actuellement, c'est impossible)

Ma théorie, c'est que le plugin C# ne peut accéder à /var/www/ , et cela lui retourne donc (403) Forbidden, bien que j'ai spécifié en adresse web "localhost/WebServerStats/[...]"

Je voudrais savoir comment je peux autoriser le plugin C# (actuellement executé par root dans home/scpserver/scp_server/ ) à communiquer avec le serveur apache alors qu'ils sont tout les deux sur le même VPS.

Merci pour votre aide !

Message édité le 21 août 2018 à 20:19:48 par [JVC]Riquezoune
deepblue
deepblue
Niveau 16
22 août 2018 à 11:29:22

Euh, c'est un peu compliqué de t'aider sans plus d'informations…

Ton répertoire WebServerStats appartient à quel utilisateur ? Sous debian et par défaut, apache2 (et le module PHP) est "exécuté" via l'utilisateur et le groupe www-data (cf la commande grep -E "USER|GROUP" /etc/apache2/envvars). Si WebServerStats appartient à root et que les droits ne permettent pas à www-data d'accéder au contenu, apache va générer une 403.

Ton machin en C# n'a pas à accéder à /var/www/WebServerStats puisqu'il fait une requête HTTP, il n'a donc pas conscience de ce répertoire et le seul truc qui l’intéresse c'est d'accéder http://localhost/WebServerStats.

Tu peux accéder à http://ip.de.ton.serveur/WebServerStats via ton navigateur ?

Enfin, exécuter ton machin en root me semble à la fois dangereux et useless.

Message édité le 22 août 2018 à 11:31:35 par deepblue
[JVC]Riquezoune
[JVC]Riquezoune
Niveau 10
22 août 2018 à 13:02:21

Le 22 août 2018 à 11:29:22 deepblue a écrit :
Euh, c'est un peu compliqué de t'aider sans plus d'informations…

Ton répertoire WebServerStats appartient à quel utilisateur ? Sous debian et par défaut, apache2 (et le module PHP) est "exécuté" via l'utilisateur et le groupe www-data (cf la commande grep -E "USER|GROUP" /etc/apache2/envvars). Si WebServerStats appartient à root et que les droits ne permettent pas à www-data d'accéder au contenu, apache va générer une 403.

Ton machin en C# n'a pas à accéder à /var/www/WebServerStats puisqu'il fait une requête HTTP, il n'a donc pas conscience de ce répertoire et le seul truc qui l’intéresse c'est d'accéder http://localhost/WebServerStats.

Tu peux accéder à http://ip.de.ton.serveur/WebServerStats via ton navigateur ?

Enfin, exécuter ton machin en root me semble à la fois dangereux et useless.

1- WebServerStats appartient à "drwxr-xr-x 9 squaldev ftpuser 4096 [date]", donc à squaldev et le groupe d'utilisateur ftpuser. ils sont devenu proprio car j'ai transféré le dossier en ftp

2- Apache2 appartient bien à www-data

3 - Je ne peux acceder à ce dossier car j'ai verouiller l'accès distant, cependant, si je retire le verouillage, cela fonctionne sans soucis. (déjà testé)

4- Oui, et je suis d'accord, mais c'est seulement pour des besoins de test à l'heure actuel, une fois que j'aurais compris d'où vient l'erreur, je créerais l'utilisateur et ses permissions nécessaire pour que cela fonctionne.

Message édité le 22 août 2018 à 13:03:35 par [JVC]Riquezoune
deepblue
deepblue
Niveau 16
22 août 2018 à 13:33:28

Que racontent les logs apache ? (/var/log/apache2/{access,error}.log)

[JVC]Riquezoune
[JVC]Riquezoune
Niveau 10
22 août 2018 à 14:18:19

Le 22 août 2018 à 13:33:28 deepblue a écrit :
Que racontent les logs apache ? (/var/log/apache2/{access,error}.log)

access.log

::1 - - [21/Aug/2018:17:41:30 +0000] "GET /SaveServerStats/plugins_call/Player/CheckPlayer.php?steamid=XXX?steamid=XXX HTTP/1.1" 403 552 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows $ NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDC),useragent test acces"

error.log :

[Tue Aug 21 17:41:30.992922 2018] [core:error] [pid 642] (13)Permission denied: [client ::1:51434] AH00035: access to /SaveServerStats/plugins_call/Player/CheckPlayer.php denied (filesystem path '/var/www/html') because search permissions are missing on a component of the path

Donc c'est bien un problème de permission, ce qui explique comment j'ai déjà pu reussir à faire tout fonctionner... en autorisant tout le monde a accéder à tout :rire: (j'ai tout reset par la suite evidemment, comme je l'ai dis dans mon premier post)

Message édité le 22 août 2018 à 14:19:14 par [JVC]Riquezoune
deepblue
deepblue
Niveau 16
22 août 2018 à 22:31:19

Je vois 2 solutions possibles :

Solution 1 :

# find /var/www/html/WebServerStats -type d -exec chmod o+x {} \;

Solution 2 :

# chown -R www-data:www-data /var/www/html/WebServerStats
Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment