Smf® Solutions

Smf 2.0.x => Upload Images => Discussion démarrée par: maximus23 le 28 Mars 2016 à 12:16:39

Titre: Version 2.3 pour Thème Core
Posté par: maximus23 le 28 Mars 2016 à 12:16:39
Bonjour,

Attention version Spéciale Core

Version 2.3 Testée avec PHP 5.6.19 et Mysqli donc compatible avec le module Mysqli de Smf.

Thème Core et Curve

Pas de pré installation du Mod Wisywig requis car le Mod n'est pas compatible avec Core.

:)
Titre: Version 2.3 pour Thème Core
Posté par: alexetgus le 07 Mai 2016 à 12:02:51

Salut Max,


Je suis actuellement sur ton mod, ça se présente pas trop mal. :)
J'ai eu quelques soucis à l'installation avec des mods déjà installés (ça passe mal avec les mods de captcha) et dans le CSS où j'ai remplacé les tabulations par des espaces.
Du coup, j'ai installé une partie à la main.


Une question, qu'est-ce que tu entends par "Taille Limite Globale en Pixels" ? C'est le nombre max de pixels ? Hauteur multiplié par largeur ?
Permissions, c'est pour ajouter une permission de groupes ? Ca marche dans les groupes posteurs (au nombre de posts) ?


Je vais quand même tester tout ça. Je vais notamment essayer d'y faire passer des véroles pour voir. :P (j'ai vu les .htaccess)


Pour l'instant, j'ai juste vu un souci. Si l'adresse de l'image avec les balises est trop longue, ça coupe, alors qu'il reste de la place. Je vais régler ça. ;)
Une capture pour te faire une idée :


(https://www.smf-fr.com/uploads/alexetgus_24/1462615290.png)






Merci Max ! :)


EDIT

Ca y est, j'ai trouvé pour la largeur. Par contre, pourquoi tu mets ça dans un IFRAME ?


Juste une première idée d'amélioration pour ce mod.
Il serait bien qu'on puisse mettre une unité quand on indique la largeur/hauteur.
Par exemple, on pourrait indiquer une largeur de 100%. En natif, si je mets 100%, le "%" saute et la largeur est de 100px...
Me concernant, ça va, c'est réglé. Mais pour les autres, ça pourrait être pas mal.




EDIT2 :

Un .htaccess avec l'option -Indexes à la racine du dossier de stockage des images serait le bienvenu. Sinon, on peut voir les images uploadées par tous les membres. ;)

Titre: Version 2.3 pour Thème Core
Posté par: maximus23 le 07 Mai 2016 à 19:23:09
Bonjour,

Oui sur le site c'est plus facile pour voir tout cela et y répondre car tout mes mods sont privés et ne dépendent pas de Smf. De plus pour les quelques autres cela pourra servir aussi surtout qu'il y a des versions qui sont déjà prêtes pour les versions futures de smf on est en Smf 2.1 beta 3. J'avance au fur et à mesure des versions pour être plus au moins au point en même temps pour tout mes mods. Là tu peux regarder cela ici : http://beta3.entre-aide.org/ (http://beta3.entre-aide.org/)

Je ne sais pas si tu as vu mais tu peux insérer le lien directement en mettant ton curseur dans le message ou il doit-être mis et en cliquant simplement sur le bouton au dessus du lien. Dans le texte du bouton je devrais peut-être mettre "Insérer le BBcode".
Donc la longueur du lien ne doit pas poser problèmes logiquement dis moi ce qu'il en est.

Pour le global je suppose que tu parles des dimensions par défaut que l'on peut mettre ?

Sinon de toute façon tout est en mode pixel.

Pour les permissions c'est des permissions normales "groupes posteur" ou "groupes standard" sans importance.

Comme ne n'ai que deux membres avec qui j'ai des contacts qui utilisent le thème core j'ai difficile à voir les bugs donc tout les retours seront positifs car ils peuvent s'appliquer aux mods utilisant d'autres thèmes mais je n'insiste plus car certains sont bornés sur leur thème et ne pense pas que cela peut résoudre des problèmes sur les autres thèmes. Le moteur d'un mod reste tel qu'il est à débuguer le reste n'est qu'enjolivure de présentation donc moins crucial à la sécurité.

Pour ce qui est du contrôle des fichiers cela se fait directement donc pas besoin d'attendre que le fichier soit sur le serveur.

Pour ce qui est de mettre les dimensions des frames en pourcentage pourquoi pas.

En ce qui concerne le htaccess là j'ai mis le minimum vital en mettant des explications dans le readme car il suffit de mettre les permissions sur le htaccess par défaut du mod et il va le coller automatiquement dans chaque répertoire attribué aux membres mais bon on peut ajouter par défaut dans le htaccess le "-Indexes" ou alors coller un fichier index dans le répertoire.

La chose la plus intéressante aussi est de faire de l'anti-hotlinking pour préserver sa bande passante sauf si on veut faire un serveur d'images.

En ce qui concerne l'Iframe j'ai créé ce mod en deux heures de temps car j'ai récupéré le code sur un autre de mes projets ou le programme tournait en "standalone" donc je dois dire que je ne me suis pas foulé beaucoup pour faire une adaptation pour Smf à la demande de plusieurs membres. Cela étant ben comme c'était en route de cette façon j'ai continué sur la lancée en faisant une adaptation de plus en plus grande suivant les demandes.

Mais bon pour le futur je verrai comment je ferai pour une adaptation multiple au choix. Il y a déjà une version qui tourne sur la version 2.1 Beta 3 de Smf comme pas mal de mes autres mods d'ailleurs.

Merci pour ta patience et tes retours.

Bonne journée.

Alain.

:)
Titre: Version 2.3 pour Thème Core
Posté par: alexetgus le 09 Mai 2016 à 06:02:15
Citation de: maximus23 le 07 Mai 2016 à 19:23:09
Bonjour,

Oui sur le site c'est plus facile pour voir tout cela et y répondre car tout mes mods sont privés et ne dépendent pas de Smf. De plus pour les quelques autres cela pourra servir aussi surtout qu'il y a des versions qui sont déjà prêtes pour les versions futures de smf on est en Smf 2.1 beta 3. J'avance au fur et à mesure des versions pour être plus au moins au point en même temps pour tout mes mods. Là tu peux regarder cela ici : http://beta3.entre-aide.org/ (http://beta3.entre-aide.org/)

Je ne sais pas si tu as vu mais tu peux insérer le lien directement en mettant ton curseur dans le message ou il doit-être mis et en cliquant simplement sur le bouton au dessus du lien. Dans le texte du bouton je devrais peut-être mettre "Insérer le BBcode".
Donc la longueur du lien ne doit pas poser problèmes logiquement dis moi ce qu'il en est.

Oui, j'ai vu ça. C'est bien pratique de cliquer sur le bouton et d'avoir les balises directement dans le post ! :)

Citation de: maximus23 le 07 Mai 2016 à 19:23:09

Pour le global je suppose que tu parles des dimensions par défaut que l'on peut mettre ?

Sinon de toute façon tout est en mode pixel.

Ca, c'est dommage. Aujourd'hui, il faut penser responsive. Tu me diras, Core n'est pas un thème responsive... ::)

Citation de: maximus23 le 07 Mai 2016 à 19:23:09

Pour les permissions c'est des permissions normales "groupes posteur" ou "groupes standard" sans importance.

Comme ne n'ai que deux membres avec qui j'ai des contacts qui utilisent le thème core j'ai difficile à voir les bugs donc tout les retours seront positifs car ils peuvent s'appliquer aux mods utilisant d'autres thèmes mais je n'insiste plus car certains sont bornés sur leur thème et ne pense pas que cela peut résoudre des problèmes sur les autres thèmes. Le moteur d'un mod reste tel qu'il est à débuguer le reste n'est qu'enjolivure de présentation donc moins crucial à la sécurité.

Pour ce qui est du contrôle des fichiers cela se fait directement donc pas besoin d'attendre que le fichier soit sur le serveur.

Pour ce qui est de mettre les dimensions des frames en pourcentage pourquoi pas.

En ce qui concerne le htaccess là j'ai mis le minimum vital en mettant des explications dans le readme car il suffit de mettre les permissions sur le htaccess par défaut du mod et il va le coller automatiquement dans chaque répertoire attribué aux membres mais bon on peut ajouter par défaut dans le htaccess le "-Indexes" ou alors coller un fichier index dans le répertoire.

La chose la plus intéressante aussi est de faire de l'anti-hotlinking pour préserver sa bande passante sauf si on veut faire un serveur d'images.

Avec le hotlinking, personne ne fait attention. Et pourtant, c'est un vrai problème !
Les gens copient les liens des images et les collent n'importe où sans savoir qu'ils sont à l'origine d'un gros problème !

Citation de: maximus23 le 07 Mai 2016 à 19:23:09


En ce qui concerne l'Iframe j'ai créé ce mod en deux heures de temps car j'ai récupéré le code sur un autre de mes projets ou le programme tournait en "standalone" donc je dois dire que je ne me suis pas foulé beaucoup pour faire une adaptation pour Smf à la demande de plusieurs membres. Cela étant ben comme c'était en route de cette façon j'ai continué sur la lancée en faisant une adaptation de plus en plus grande suivant les demandes.

Mais bon pour le futur je verrai comment je ferai pour une adaptation multiple au choix. Il y a déjà une version qui tourne sur la version 2.1 Beta 3 de Smf comme pas mal de mes autres mods d'ailleurs.

Ah d'accord ! C'est un iframe de fainéantise. Compris ! ;D

Citation de: maximus23 le 07 Mai 2016 à 19:23:09

Merci pour ta patience et tes retours.

Bonne journée.

Alain.

:)


Je te tiens au jus de mes avancées sur ce mod.
Je risque de te soumettre une version "un peu" modifiée bientôt. ;)
Titre: Version 2.3 pour Thème Core
Posté par: maximus23 le 09 Mai 2016 à 22:00:25
Bonsoir,

Pas de soucis toutes les suggestions pour ce mod sont les bienvenues.

:)
Titre: Version 2.3 pour Thème Core
Posté par: alexetgus le 10 Mai 2016 à 06:34:37
Bon ! Pour ce qui est de l'injection de code dans une image, ça a l'air tout bon.


Tu sais quoi ? Je vais faire un essai grandeur nature sur mon site.
Si il y a une faille, un internaute la trouvera. Moi, j'ai rien trouvé. :P


Comme d'hab, je te tiens au jus ! :)


EDIT
Pourquoi t'écris en bleu ? C'est réservé aux admins ? :P
C'est emmerdant, on croirait lire un lien...

Titre: Version 2.3 pour Thème Core
Posté par: alexetgus le 10 Mai 2016 à 07:44:35
J'ai mis le doigt sur une vulnérabilité.


Le nom de dossier créé est celui de l'identifiant, pas le nom du membre !
SMF propose d'avoir un identifiant différent du nom de membre par sécurité et tu utilises cet identifiant pour créer le dossier d'images du membre.
C'est une faille de sécurité ! Il faut utiliser le nom du membre, pas son identifiant !
Titre: Version 2.3 pour Thème Core
Posté par: maximus23 le 10 Mai 2016 à 17:12:53
Bonjour,

CiterPourquoi t'écris en bleu ? C'est réservé aux admins ? :P
C'est emmerdant, on croirait lire un lien...

Tu écris comme tu veux tu vas dans ton profil -> Affichage et disposition et là tu fais comme tu veux c'est un mod.
Il faut bien que je teste tout :) Voilà j'ai changé de couleur :) :)

CiterLe nom de dossier créé est celui de l'identifiant, pas le nom du membre !

Tu as trois solutions disponibles :
soit nom+id  pour moi -> maximus_1
soit id  -> member_1
soit rien répertoire -> uploads pour tous.

Donc tu vois que l'id sous sa forme originale n'a pas lieu d'être il est traité à la base d'une autre façon.

:)
Titre: Version 2.3 pour Thème Core
Posté par: alexetgus le 11 Mai 2016 à 21:29:27
Oui, je suis d'accord. Il suffit de sélectionner l'ID est on est tranquille.
Mais pense au peuple ! La plupart des personnes qui vont installer ton mod sont des cons.
Il faut donc empêcher l'utilisation de l'identifiant. Seul le nom du membre doit être utilisable. C'est pas compliqué à faire.  ;)




Test Hotlink :
(https://chez-oim.org/uploads/member_1/1462994585.jpg)

Titre: Version 2.3 pour Thème Core
Posté par: maximus23 le 12 Mai 2016 à 11:15:58
Bonjour,

Pour l'aspect technique pas de soucis le module va évoluer mais la concentration maxi se fera déjà vers les nouvelles versions de Smf. Je continuerai de soutenir la version actuelle mais je compte refaire un mod unique pour core et curve ce sera plus simple à gérer.

Je vois que tu as adopté l'hotlinking et tu verras que cette chose va en frustrer plus d'un car ils ne comprennent pas le pourquoi de la chose. Pour eux tout est acquit d'emblée. Donc côté technique beaucoup vont le délaisser pour le côté pratique.

J'ai été étonné par ce comportement sur la plupart des sites sur lequel ce mod tourne en mode hotlinkink. Donc voilà mais pour moi le choix est fait je n'ai pas "d'actions" pour les serveurs donc pas content tant pis on passe son chemin. C'est pour cela que je rappelle souvent cette règle aux webmasters qui est primordiale pour leur site et leur portefeuille.

:)



Titre: Version 2.3 pour Thème Core
Posté par: alexetgus le 12 Mai 2016 à 12:39:58
Les gens ne comprennent pas le danger du hotlinking.
Ils copient un lien et ils le collent sans même savoir les dégâts que ça peut avoir sur le serveur qui donne sa bande passante pour un site qui n'est même pas le sien !
J'ai toujours été pour la lutte contre le hotlinking ! C'est un fléau !


Certains vont même jusqu'à imaginer qu'ils te font de la pub en copiant l'adresse de tes images ! Mais personne ne voit cette adresse et Google s'en fout !


Quand j'ai installé le mod, je me suis fait engueuler parce que je ne fait pas hébergeur d'images ! J'interdis le hotlink et je l'ai toujours fait, avant même d'installer le mod.
Mais ça a quand même râlé !

Titre: Version 2.3 pour Thème Core
Posté par: alexetgus le 01 Mai 2017 à 23:30:18
Citation de: alexetgus le 11 Mai 2016 à 21:29:27
Oui, je suis d'accord. Il suffit de sélectionner l'ID est on est tranquille.
Mais pense au peuple ! La plupart des personnes qui vont installer ton mod sont des cons.
Il faut donc empêcher l'utilisation de l'identifiant. Seul le nom du membre doit être utilisable. C'est pas compliqué à faire.  ;)




Test Hotlink :
(https://chez-oim.org/uploads/member_1/1462994585.jpg)

Voilà le problème du proxy ! Le voilà !
L'image est affichée en hotlinking et pourtant j'interdis le hotlink ! >:(

SMF a merdé, SMF a merdé plein pot !
Et en plus, c'est ton site qui récupère les images, c'est donc toi le responsable !

EDIT
Alain, je vais être obligé de te blacklister. :(
Titre: Version 2.3 pour Thème Core
Posté par: alexetgus le 02 Mai 2017 à 00:45:24
Le blacklistage n'étant pas une solution viable, ça obligerait à bloquer chaque SMF de la planète, je vais créer un tuto prioritaire afin de bloquer ce proxy utilisé par les webmasters pour piller les images et la bande passante des sites web.

Désolé Alain, avec ce proxy, maintenant, la personne qui prend les images, c'est le webmaster, ce n'est plus l'internaute.

Et devine quoi ? Il y a pire !
Si demain je veux attaquer 10 sites par DDoS, j'aurai juste à afficher une image de chaque site dans un topic ici.
Ensuite, j'attaque la page d'ici où les images sont affichées.
Par ricochet, ton site se retrouvera à attaquer 10 autres sites ! ;D

Bravo SMF !

J'ai comme l'impression que tu as récupéré ce proxy chez SMF avant sa sortie officielle.
Tu as fait une grossière erreur !
Ne court-circuite pas SMF ! Laisse lez finir le boulot !
Titre: Version 2.3 pour Thème Core
Posté par: maximus23 le 02 Mai 2017 à 06:39:24
Bonjour,

Non pas de cour circuit avec Smf.

J'ai dis c'est un backport de la version 2.1 de Smf.

Tu as testé sur la version officielle ici pour voir ce qu'il en est ?

https://beta3.entre-aide.org/ (https://beta3.entre-aide.org/)

Car si même problème intervient sur ce site alors je devrai le signaler à la Team.

:)

J'ai testé ton site avec et sans proxy toutes tes images s'affichent....sans le moindre soucis.

Tu es certain de tes htaccess de redirection pour tes images ?

:)
Titre: Version 2.3 pour Thème Core
Posté par: alexetgus le 02 Mai 2017 à 13:18:52
C'est un problème de SSL, tu vas rencontrer le même problème.

J'avais déjà eu le souci il y a quelques années, à la naissance de mon site.
Pour les images affichées en HTTPS, il n'y a pas de problème, le referrer est transmis et l'anti hotlink fonctionne.
Par contre, pour les image en HTTP, ça ne va plus si le site utilise SSL ! >:(

Fais l'essai si tu veux. Edite mes posts et passe les images en HTTPS. ;)

Du coup, il va falloir que je fasse un truc Apache ou PHP pour que les images non SSL ne soient plus servies.
Et toi aussi, tu vas être obligé de faire pareil si tu ne veux pas de hotlinking.


EDIT
J'avais pas vu que je pouvais éditer mes vieux posts.  Je pensais que c'était trop tard. :-[

Tu as vu ? Si je passe les images en HTTPS, l'anti hotlink fonctionne !
Grosse prise de tête en perspective ! Il va falloir que je bascule mon site en SSL, je ne peux plus donner le choix entre SSL et pas SSL.
De toute façon, j'ai basculé toutes les images et les jeux flash en HTTPS il y a quelques jours, et ça n'a pas l'air de poser de problèmes.
Tout le monde semble afficher correctement les images SSL, sinon j'aurais eu des nouvelles. C'est bien connu, quand tout va bien, personne ne dit rien, mais si il y le moindre problème, là ça râle. ;D

Par contre, si quelqu'un veut faire du hotlink, il a juste à afficher les images en HTTP...
Pour l'instant ! La solution est en route ! :P


Titre: Version 2.3 pour Thème Core
Posté par: alexetgus le 02 Mai 2017 à 14:29:15
Citation de: alexetgus le 02 Mai 2017 à 13:18:52
C'est un problème de SSL, tu vas rencontrer le même problème.

J'avais déjà eu le souci il y a quelques années, à la naissance de mon site.
Pour les images affichées en HTTPS, il n'y a pas de problème, le referrer est transmis et l'anti hotlink fonctionne.
Par contre, pour les image en HTTP, ça ne va plus si le site utilise SSL ! >:(

Fais l'essai si tu veux. Edite mes posts et passe les images en HTTPS. ;)

Du coup, il va falloir que je fasse un truc Apache ou PHP pour que les images non SSL ne soient plus servies.
Et toi aussi, tu vas être obligé de faire pareil si tu ne veux pas de hotlinking.


EDIT
J'avais pas vu que je pouvais éditer mes vieux posts.  Je pensais que c'était trop tard. :-[

Tu as vu ? Si je passe les images en HTTPS, l'anti hotlink fonctionne !
Grosse prise de tête en perspective ! Il va falloir que je bascule mon site en SSL, je ne peux plus donner le choix entre SSL et pas SSL.
De toute façon, j'ai basculé toutes les images et les jeux flash en HTTPS il y a quelques jours, et ça n'a pas l'air de poser de problèmes.
Tout le monde semble afficher correctement les images SSL, sinon j'aurais eu des nouvelles. C'est bien connu, quand tout va bien, personne ne dit rien, mais si il y le moindre problème, là ça râle. ;D

Par contre, si quelqu'un veut faire du hotlink, il a juste à afficher les images en HTTP...
Pour l'instant ! La solution est en route ! :P



Je viens de faire l'essai avec ton site et tu as bien exactement le même problème.

Si quelqu'un te prend le lien d'une image, il a deux solutions.
Si l'image est affichée en HTTPS, pas de souci, l'anti hotlink fonctionne.
Si l'image est affichée en HTTP, l'anti hotlink ne marche plus et l'image s'affiche...


EDIT
Voilà ce que ça donne avec la même image, et c'est très énervant ! ::)
Cette image est simplement demandée en HTTP, puis la demande est faite en HTTPS.

(https://www.smf-fr.com/uploads/alexetgus_24/1493736310.png)
Titre: Version 2.3 pour Thème Core
Posté par: maximus23 le 04 Mai 2017 à 17:48:04
Bonjour,

Dans toutes les solutions je n'en trouve qu'au niveau d'apache en bloquant le répertoire pour le port 80 ou en bloquant carrément le port 80 si le site est entièrement sécurisé. Mais là tout se passe au niveau du vhost.

Il doit quand même exister quelque chose de plus simple à faire pour les utilisateurs mais je ne vois rien pour le moment.

Si quelqu'un a des pistes alors pas de soucis de les noter.

:)
Titre: Version 2.3 pour Thème Core
Posté par: alexetgus le 04 Mai 2017 à 19:15:23
Bloquer le port 80, c'est hard !
Dans ce style, tu as aussi la directive Apache
Code
SSLRequireSSL

Mais attention ! Tous ceux qui entrent l'adresse du site en HTTP n'ont pas de redirection vers SSL.
Sans parler des robots comme Google qui testent régulièrement le port 80.

Ce souci est bordélique, et personne ne semble avoir la réponse... :(
Titre: Version 2.3 pour Thème Core
Posté par: alexetgus le 04 Mai 2017 à 20:06:58
Quelques pistes que tu peux vérifier, ça a peut-être changé depuis Apache 2.2...

- Est-ce qu'une redirection 301 ou 302 vers le SSL pour les images laisse le referrer dans son état d'origine ?
Si oui, le problème est réglé, il suffit de rediriger les images non SSL.

- Est-ce HTTP_HOST prend la valeur de l'adresse de l'image ou celle du site d'origine ?

- Est-ce qu'un header "Access-Control-Allow-Origin" pour les images peut régler le souci ?


Je repasserai, j'ai la tête dans mes vieux fichiers de l'époque, j'approche de l'année 1889, je ne savais pas que j'avais tout ça. :P
Je creuse, je creuse, je te tiens au courant. Tiens ?!! J'entends parler chinois !!! :o

Titre: Version 2.3 pour Thème Core
Posté par: maximus23 le 05 Mai 2017 à 16:15:01
Bonjour,

J'ai essayé pas mal de méthode en faisant des blocages donc à la place d'une belle image de hotlinking il n'ont plus qu'une belle croix comme si l'image n'existait plus.

Sinon une méthode parmi d'autre en htacces :

En forçant un répertoire en mode sécure

Code
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/checkout/?.*$
RewriteRule ^(.*)$ http://mydomain.com/$1 [R=301,L]


Le
Code
RewriteCond %{HTTPS}
peut permettre pas mal de choses ainsi que le blocage par le port 80

Code
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]


Des pistes à suivre.

:)


Titre: Version 2.3 pour Thème Core
Posté par: alexetgus le 06 Mai 2017 à 08:09:45
Je vais essayer de me re-pencher sur le problème ce week-end.
A l'époque, je n'avais rien trouvé de satisfaisant, hormis le blocage pur et dur comme tu l'évoques.

Mais bon, on va voir, il doit bien exister une méthode moins brutale. :-\