Aller au contenu

SStephane

Hubmaster
  • Compteur de contenus

    726
  • Inscrit(e) le

  • Dernière visite

Messages postés par SStephane

  1. Dans ton php.ini, tu mets le smtp de ton fournisseur d'accès, et ta fonction mail passera par là. Par exemple :



    [mail function]
    SMTP = smtp.free.fr
    smtp_port = 25

    A noter que le nombre de mail que tu peux envoyer chaque jour sera décompté au niveau du FAI, y compris ceux d'éventuels cc ou cci (je ne connais pas le nombre exact, mais ça doit tourner aux alentours de 200 sur les offres domestiques).




    Sinon mieux, tu utilises une librairie dédiée et tu n'utilises pas la fonction mail() smile.gif



    Pour info, il est possible d'injecter du code dans tes entêtes, donc de spammer ton formulaire; il faut echapper tes variables car nous vivons dans un monde cruel.


  2. Fail2ban est un outil, rien de plus. Mal utilisé, c'est pourri ... et je rejoins ton point de vue sur le bannissement aveugle des 404 répétés.



    Je te remercie de mettre en avant mon "talent" dans la config de fail2ban (ton cynisme répond au mien qui était peut-être déplacé -auquel cas, je m'en excuse-), je pense sincérement qu'avec un minimum d'investissement, on arrive à une configuration plus qu'acceptable.





    nombreux sont ceux qui utilisent mal fail2ban, qui reste tout de même dangeureux s'il n'est pas adapté à la situation




    On a d'ailleurs tous été victime de ses propres règles (3 mot de passe ratés, reviens dans 10 minutes wink.gif )





    on trouve trop souvent des configurations "types" appliquées à tout et n'importe quoi




    Je te concède ça ! dès lors que le produit est livré avec un config moyenne (notamment pour apache et postfix, pas pour ssh)



    Mais sur des 401 répétés, sur des 404 abusés... (genre .*phpmyadmin.* ce qui entre dans le cas de figure d'alain non ?) on peut facilement éviter les faux positifs car à l'inverse de beaucoup d'autres outils, c'est tout de même très simple à utiliser,et il est simplement dommage de s'en priver !


  3. Important de connaitre la motivation des attaquants... ce n'est pas de faire tomber un site, mais beaucoup d'un coup dans le cas ou l'on ne présente qu'un intérêt financier relatif (j'aurais beaucoup à dire là dessus).


    Mon point de vue est d'empêcher purement et simplement les kiddies d'identifier un script connu pour l'exploiter au moment ou une faille sera déclarée sur celui-ci.




    Attention également à fail2ban, qui même très bien configuré, apporte souvent plus de problème aux vrais visiteurs (faux positifs) qu'aux attaquants.



    Les faux positifs, quand un fail2ban est "très bien configuré" (même dans le cas ou un concurent me voudrait du mal, avec un peu d'imagination, tu comprendras ce que je veux dire), j'en ai jamais eu en prod.



    Je suis d'accord avec toi sur le principe, mais je ne peux te laisser dire (même sous-entendre) que ca crée plus de problèmes que ça n'en résoud.




    A noter également que vouloir effectuer une action de ban sur un 404 est le meilleur moyen de bloquer un crawler Google




    Nous n'avons donc pas pas même notion du fail2ban "très bien configuré", je suis rassuré wink.gif


  4. J'utilise fail2ban pour ça (j'allège les règles d'exclusion pour éviter les faux positifs) : dans l'idée, du genre :



    [[]client (?P<host>\S*)[]] File does not exist: .*\.(php|asp|aspx|jsp)

    plus précis :



    [[]client <HOST>[]] (File does not exist|script not found or unable to stat): .*/(cgi-bin|admin|Admin|sql|mail|phpmyadmin|file:|php|pma|web|PMA|PMA2006|pma2006|sqlmanager|mysqlmanager|PMA2005|phpmyadmin-old|phpmyadminold|pma2005|phpmanager|mysql|myadmin|webadmin|sqlweb|websql|webdb|mysqladmin|mysql-admin|phpmyadmin2|phpMyAdmin2|phpMyAdmin-2|php-my-admin|cms|clan|site|seite|page|forum|wbb2|board|wbb|archive|forumv2|forumv1|b0ard|f0rum|wbb1|wbb3|wbblite|directforum|board23|board2|board3|WBB|WBB2|html|phpkit|page|phpkit_1.6.1|clan|myadmin|webadmin|sqlweb|websql|webdb|mysqladmin|mysql-admin|phpmyadmin2|php-my-admin|phpMyAdmin-2.2.3|phpMyAdmin-2.2.6|phpMyAdmin-2.5.1|phpMyAdmin-2.5.4|phpMyAdmin-2.5.6|phpMyAdmin-2.6.0|phpMyAdmin-2.6.0-pl1|phpMyAdmin-2.6.2-rc1|phpMyAdmin-2.6.3|phpMyAdmin-2.6.3-pl1|phpMyAdmin-2.6.3-rc1|padmin|datenbank|database|horde|horde2|horde3|horde-3.0.9|Horde|README|horde-3.0.9|adserver|phpAdsNew|phpadsnew|phpads|Ads|ads|xmlrpc|xmlsrv|blog|drupal|community|blogs|blogtest|appserver|roundcube|rc|mail|mail2|roundcubemail|rms|webmail2|webmail|wm|bin|roundcubemail-0.1|roundcubemail-0.2|roundcube-0.1|roundcube-0.2|roun|cube|wp-login.php|ucp.php|\.asp|\.dll|\.exe|\.pl)

    A utiliser avec précaution, mais ça en vire pas mal (ça vire potentiellement les vrais utilisateurs si t'as des 404... donc faire gaffe selon tes sites à virer ou à ajouter des règles).



    Enfin, c'est surtout pour dire que l'on est pas obligé de "ne rien faire". D'autre part, je vire définitivement les IPs insistantes.


  5. ça sera pas viable.

    Non smile.gif

    NodeJS sera-t-il viable à forte affluence.

    Oui, même très forte.

    Pour tes logs, tout dépend comment tu veux les exploiter par la suite.

    As tu réellement besoin de SQL ? (car tu peux aussi faire des logs simples ( genre echo "machin" >> chat.log ), 1 fichier de log par room, par exemple (sauf à espionner les chatteurs, pas trop d'intérêt, en général on conserve juste ce genre de truc au cas ou...)

    En SQL avec nodejs, les seules requêtes que tu feras seront des requêtes d'insertion (pour l'historique, ce que tu peux eviter avec des fichiers de log).

    Après, même en ajax, tu peux nettement limiter les requetes SQL, mais tu n'éviteras jamais les requêtes AJAX repétées (touts les secondes pour un truc à peu pres correct), donc à terme, c'est pas viable ( autant installer loic directement sur les clients wink.gif ).

    PS : bon anniv

  6. Tu installes d'abord nodeJS, ensuite tu édites le fichier JS du serveur avec tes paramètres (généralement le port d'écoute, je l'ai fait à l'arrache, donc dans le code), les fichiers du client aussi, il doit y avoir l'IP d'un de mes servuers dessus.



    Ensuite tu lances le serveur en SSH :



    nodejs chat-server.js

    Et c'est tout !


  7. Faut pas être refractaire au progrès comme ça :D



    PLusieurs avantages :


    • tu n'envoies pas de requêtes inutiles sur le serveur - l'interval que tu es obligé de définir pour récupérer les messages - (et ton client est déjà en JS, d'un certain point de vue)

    • instantanéïté des messages

    Dans la source que je t'ai passé, il y a un proxy swf qui gère les sockets lorsque le navigateur ne les gère pas (IE < 10), pas d'excuse de portabilité !



    Un inconvénient : il faut gérer les déconnexions des clients et faire des tentatives de reconnexion lorsque ça déconne !


  8. Hello,



    Bonne chance et... je retire ce que j'ai dit sur DOMDocument : http://p0l0.binware.org/wp-content/uploads/2011/07/300x203xXML-1000-100-300x203.png.pagespeed.ic.Vm75GAcX_4.png (Sauf à ce qu'il y ait eu des MAJ dans l'implémantation, pas de gain de perf avec DD selon plusieurs sources, même des pertes).



    En gros, utilise la première méthode, en terme de relecture de code, c'est quand même beaucoup plus simple !

  9. <?php

    $szXML = <<<EOT

    <product class="pointData">

    <time datatype="forecast" from="2013-04-21T12:00:00Z" to="2013-04-21T12:00:00Z">-

    <location altitude="132" latitude="43.3000" longitude="5.3800">

    <temperature id="TTT" unit="celcius" value="15.2" />

    <windDirection id="dd" deg="302.4" name="NW" />

    <windSpeed id="ff" mps="5.3" beaufort="3" name="Lett bris" />

    <humidity value="50.8" unit="percent" />

    <pressure id="pr" unit="hPa" value="1015.6" />

    <cloudiness id="NN" percent="50.8" />

    <fog id="FOG" percent="0.0" />

    <lowClouds id="LOW" percent="18.8" />

    <mediumClouds id="MEDIUM" percent="17.2" />

    <highClouds id="HIGH" percent="38.3" />

    </location>

    </time>

    <time datatype="forecast" from="2013-04-21T15:00:00Z" to="2013-04-21T15:00:00Z">-

    <location altitude="132" latitude="43.3000" longitude="5.3800">

    <temperature id="TTT" unit="celcius" value="15.5" />

    <windDirection id="dd" deg="311.3" name="NW" />

    <windSpeed id="ff" mps="6.2" beaufort="4" name="Laber bris" />

    <humidity value="50.5" unit="percent" />

    <pressure id="pr" unit="hPa" value="1013.8" />

    <cloudiness id="NN" percent="62.5" />

    <fog id="FOG" percent="0.0" />

    <lowClouds id="LOW" percent="27.3" />

    <mediumClouds id="MEDIUM" percent="36.7" />

    <highClouds id="HIGH" percent="36.7" />

    </location>

    </time>

    </product>

    EOT;

    SimpleXML :

    $xml = simplexml_load_string($szXML);

    foreach($xml->time as $time):

    if((string) $time['from'] == (string) $time['to']):

    print $time->location->temperature['value'];

    endif;

    endforeach;

    (précision, dans la condition, je caste en string -avec (string)- car il s'agit d'objet, sans cast, fort à parier que cela retourne false)

    Tu peux envisager un truc avec DOM aussi :

    $dom = new DOMDocument();

    $dom->loadXML($szXML);

    $timeNodes = $dom->getElementsByTagName('time');

    foreach($timeNodes as $time):

    if( $time->getAttribute('from') == $time->getAttribute('to')):

    print $time->getElementsByTagName('location')->item(0)->getElementsByTagName('temperature')->item(0)->getAttribute('value') ;

    endif;

    endforeach;

    La conclusion : DOMDocument n'est quand même pas idéal à utiliser dans ton cas, peut être plus performant si tu traites un gros fichier, mais bon...

  10. Je te recommande de logguer les requêtes qui posent problème http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html


    (***edit : > 1s par exemple, pas 10 comme par défaut)


    Et à l'usage d'ajouter des index si besoin, voire tout simplement d'ajouter les clés étrangères qui sont absentes (de mémoire) sur l'ainstall de base de wordpress, phpmyadmin (si tu l'as) donne certaines infos -de mémoire, je l'utilise pas-.



    Des fois, une seule requête peut poser problème, j'ai eu le cas avec un simple formulaire d'authentification (qui s'est réglé avec un index des 2 premières lettres sur le login).



    En tout cas bonne chance, c'est chiant !


  11. En fait, tu as tout bien fait mais ça marche pas whistling.gif Mais tu veux quand même pas me donner le résultat de la commande que je t'ai demandé smile.gif



    Que apache t'affiches du html quand tu appelles une url, ça veut pas dire que le service rtmp fonctionne ... d'où ma demande wink.gif (si y'a 2 ports différents, y'a probablement + d'un service)



    Je suis quand même content que tu me dises quel serveur tu utilises, en l'occurence red5, qui est très verbeux quand tu entres ta commande "sh red5.sh".


    SI ça ne fonctionne pas ce qui semble être le cas, il pourrait être intéressant de nous dire ce qui est écrit, red5 peut démarrer et ton appli planter (celle de videowhisper), car le fait de nous expliquer ou tu as téléchargé l'application n'aidera pas... (je compte pas me taper la doc de videowhisper et reproduire chez moi pour être franc).



    En partant du principe que red5 est correctement installé -pas ton appli vw-, ton erreur est une des suivantes :


    • pare-feu mal configurée,

    • appli qui plante,

    • client mal configuré,

    • ...

    Si tu prends le temps de taper la cmd et de poster ces logs, genre si tu vois des [ERROR] (et même si ça bootstrap à la fin), ça permettra de répondre à la question "laquelle ?".


  12. le module RTMP est ok

    ça va faire court pour t'aider vu que ton souci vient probablement de ton serveur rtmp. (donc pas si "ok" que ça wink.gif)

    Que donne netstat -tanpu|grep 1923 ? (si tu utilises le port par défaut) et d'aileurs, c'est quoi ton serveur rtmp ?

  13. Ola,



    Sur un site de recherche scientifique, je cherche à publier des pages abondamment illustrées (image+contenu), chaque page a un thème.



    Je ne connais pas super bien les microdata, mais j'ai pensé à partir sur "article", j'ai plusieurs auteurs (et potentiellement contributeurs) par page




    <div itemscope itemtype="http://schema.org/Article">
    Auteurs :
    <a href="LIEN VERS LA PAGE AUTEUR" itemprop="author" rel="author">Auteur 1</a>,
    <a href="LIEN VERS LA PAGE AUTEUR" itemprop="author" rel="author">Auteur 2</a>,
    ...

    Contributeurs :
    <a href="LIEN VERS LA PAGE AUTEUR" itemprop="contributor" rel="contributor">Contributeur 1</a>,
    <a href="LIEN VERS LA PAGE AUTEUR" itemprop="contributor" rel="contributor">Contributeur 2</a>

    <!-- contenu -->

    </div>

    Mes questions : avoir plusieurs auteurs, ça pose problème ? Si je rajoute des auteurs aux illustrations du contenu, ça va pas poser soucis également ?



    PS : je hais html smile.gif


  14. nowdoc obéït certainement aux même lois en terme de rapidité (certainement pour évoquer un doute).



    Pour l'utilisation des simples quote, je suis la recommandation de zend : simple quote quand il n'y a pas de simple quote/variable dans ma string http://framework.zend.com/wiki/display/ZFDEV/PHP+Coding+Standard+%28draft%29#PHPCodingStandard%28draft%29-StringLiteralsContainingApostrophes



    (Je me permets de le préciser dans ton topic car tu abordes le sujet, et ne souhaiterais pas que la simple-quote se démocratise trop auprès de codeurs qui pourraient en devenir aficionados !)



    Aufwiedersehen !


×
×
  • Créer...