Commit 3780ad55 authored by Tédé NGUYEN KHAC's avatar Tédé NGUYEN KHAC
Browse files

Premier dépôt, version en cours de refactoring

parent 12b1c64d
/.project
/.buildpath
/.settings/*
####Interdire de lister le contenu d’un dossier:
# Désactiver l'affichage du contenu des répertoires
Options All -Indexes
# Masquer les informations du serveur
ServerSignature Off
# Alternative pour empêcher le listage des répertoires
IndexIgnore *
# Activation du suivi des liens symboliques
Options +FollowSymLinks
# Choix du fuseau horaire
SetEnv TZ Europe/Paris
####Interdire l’accès aux fichiers .htaccess et .htpasswd depuis un navigateur web
<Files ~ "^.*\.([Hh][Tt][AaPp])">
order allow,deny
deny from all
satisfy all
</Files>
#<files php/notaires_fonctions.php>
#order allow,deny
#deny from all
#</files>
#<files *>
#satisfy all
#</files>
#<Directory />
#order allow,deny
#deny from all
#</Directory>
#<Files php*>
#Deny from all
#</Files>
##On n’autorise que l’affichage de certains fichiers, et pas les autres. Le fichier index.php est le fichier par défaut. Si on affiche index.htm, ça ne marche pas. L’intérêt est d’interdire au pirate d’afficher sur son navigateur un fichier ou un format de fichier non autorisé.
##Attention: il faut tester ces interdictions et les adapter au besoin.
### SEUL LE FICHIER index.php EST SERVI COMME PREMIER FICHIER PAR DEFAUT. LES AUTRES SONT INTERDITS
DirectoryIndex index.php
####Exclure les logiciels suspects utilisés par les pirates et certains aspirateurs de site web. -= TRÈS EFFICACE ET INDISPENSABLE =-. Appliquez cette règle, car on bloque déjà une grande part des attaques automatiques. Cette liste est le minimum qu’il faut avoir et elle donne d’excellents résultats. Vous pouvez en ajouter d’autres si vous en trouvez.
###FILTRE CONTRE CERTAINS ROBOTS DES PIRATES
RewriteEngine On
## EXCEPTION: TOUS LES ROBOTS MEMES ANONYMES OU BANNIS PEUVENT ACCEDER A CES FICHIERS
RewriteCond %{REQUEST_URI} !^/robots.txt
RewriteCond %{REQUEST_URI} !^/sitemap.xml
##
RewriteCond %{HTTP_USER_AGENT} ^-?$ [OR] ## ANONYMES
RewriteCond %{HTTP_USER_AGENT} ^[bcdfghjklmnpqrstvwxz\ ]{8,}|^[0-9a-z]{15,}|^[0-9A-Za-z]{19,}|^[A-Za-z]{3,}\ [a-z]{4,}\ [a-z]{4,} [OR] ## CEUX QUI INVENTENT DES NOMS AU HASARD
RewriteCond %{HTTP_USER_AGENT} 2icommerce|@nonymouse|Accoona|ActiveTouristBot|adressendeutschland|ADSARobot|Advanced\ Email\ Extractor|agent|ah-ha|aipbot|aktuelles|Alexibot|Alligator|AllSubmitter|almaden|amzn_assoc|anarchie|anonymous|Apexoo|Aqua_Products|Art-Online|ASPSeek|ASSORT|asterias|ATHENS|AtHome|Atomz|attach|autoemailspider|autohttp|BackDoorBot|BackWeb|Badass|Baiduspider|Bandit|BatchFTP|bdfetch|BecomeBot|berts|big.brother|Bitacle|Biz360|Black.Hole|BlackWidow|bladder\ fusion|BlogPeople|blogsearchbot-martin|Blogshares\ Spiders|Blog\ Checker|Bloodhound|BlowFish|bmclient|Board\ Bot|Bookmark\ search\ tool|Boston\ Project|BotALot|BotRightHere|Bot\ mailto:craftbot@yahoo.com|BravoBrian\ SpiderEngine\ MarcoPolo|Bropwers|Browsezilla|BuiltBotTough|Bullseye|bumblebee|BunnySlippers|c-spider|capture|Cegbfeieh|CFNetwork|charlotte/|CheeseBot|CherryPicker|ChinaClaw|CICC|clipping|compatible\ \;|Convera|Copernic|CopyRightCheck|cosmos|Crescent|Crescent\ Internet|Custo|cyberalert|Cyberz|DataCha0s|Daum|Deweb|diagem|Digger|Digimarc [NC,OR] ## VRAIS ET FAUX ROBOTS NE RESPECTANT PAS LES REGLES
RewriteCond %{HTTP_USER_AGENT} digout4uagent|DIIbot|DirectUpdate|disco|DISCoFinder|DittoSpyder|DnloadMage|Download|Downloader|Download\ Accelerator|Download\ Demon|Download\ Wonder|dragonfly|DreamPassport|Drip|DSurf|DSurf15a|DTS.Agent|DTS\ Agent|dumbot|DynaWeb|e-collector|EasyDL|EBrowse|eCatch|echo\ extense|ecollector|edgeio|efp@gmx\.net|EirGrabber|EmailCollector|EmailSiphon|EmailWolf|Email\ Extractor|Email\ Siphon|EmeraldShield|Enterprise_Search|EroCrawler|ESurf|Eval|Everest-Vulcan|Exabot|Express\ WebPictures|Extractor|ExtractorPro|EyeNetIE|FairAd|fastlwspider|FavOrg|Favorites\ Sweeper|fetch|FEZhead|FileHound|findlinks|Flaming\ AttackBot|flashget|FlickBot|fluffy|Foobot|Forex|Franklin\ Locator|FreshDownload|frontpage|FSurf|Gaisbot|GalaxyBot|Gamespy_Arcade|Generic|genieBot|GetBot|Getleft|GetRight|GetSmart|GetWeb!|GetWebPage|gigabaz|Girafabot|Go!Zilla|go-ahead-got-it|GOFORITBOT|GornKer|Grabber|GrabNet|Grafula|Green\ Research|grub-client|grub\ crawler|hanzoweb|Harvest|Hatena\ Antenna|heritrix|hhjhj@yahoo|hloader|HMView|holmes [NC,OR] ## VRAIS ET FAUX ROBOTS NE RESPECTANT PAS LES REGLES
RewriteCond %{HTTP_USER_AGENT} HomePageSearch|HooWWWer|HouxouCrawler|HTTPConnect|httpdown|HTTPGet|HTTPRetriever|http\ generic|HTTrack|humanlinks|ia_archive|IBM_Planetwide|iCCrawler|ichiro|id-search|IDBot|iGetter|imagefetch|Image\ Stripper|Image\ Sucker|imds_monitor|IncyWincy|Industry\ Program|Indy\ Library|InetURL|InfoNaviRobot|informant|Ingelin|InstallShield\ DigitalWizard|InterGET|InternetLinkAgent|InternetSeer\.com|Internet\ Ninja|IPiumBot|Iria|IRLbot|Iron33|Irvine|ISSpider|IUPUI\ Research\ Bot|Jakarta\ Commons|JBH*Agent|JBH\ Agent|JennyBot|JetCar|JetCar|jeteye|jeteyebot|JoBo|JOC\ Web\ Spider|JustView|Kapere|Kenjin|Keyword\ Density|KRetrieve|ksoap|KWebGet|Lachesis|LapozzBot|larbin|LeechFTP|leipzig.de|LexiBot|lftp|LightningDownload|likse|Link*Sleuth|LinkextractorPro|Linkie|LinkScan|LINKS\ ARoMATIZED|linktiger|LinkWalker|lmcrawler|LNSpiderguy|LocalcomBot|looksmart|Mac\ Finder|Mag-Net|Magnet|Mail\ Sweeper|mark.blonin|MaSagool|Mass\ Downloader|Mata\ Hari|MCspider|MetaProducts\ Download\ Express [NC,OR] ## VRAIS ET FAUX ROBOTS NE RESPECTANT PAS LES REGLES
RewriteCond %{HTTP_USER_AGENT} Microsoft\ Data|Microsoft\ Data\ Access|Microsoft\ URL|Microsoft\ URL\ Control|MIDown|MIDown\ tool|MIIxpc|minibot\(NaverRobot\)|Mirror|Missauga|Missigua|Missouri\ College\ Browse|Mister|Mister\ PiX|MJ12bot|mkdb|MMMtoCrawl\/UrlDispatcherLLL|moget|Monster|Moozilla|Moreoverbot|mothra/netscan|MovableType|Movable\ Type|Mozi!|Mozilla/22|Mozilla/3.0\ \(compatible\)|Mozilla/5.0\ \(compatible\;\ MSIE\ 5.0\)|MSIECrawler|MSIE_6.0|MSProxy|multithreaddb|Murzillo|MVAClient|MyFamilyBot|MyGetRight|nameprotect|NASA\ Search|nationaldirectory|Naver|Navroad|NearSite|NetAnts|netattache|NetCarta|NetMechanic|netprospector|NetResearchServer|NetSpider|NetZIP|NetZippy|NetZip\ Downloader|Net\ Vampire|NEWT|Nextopia|nicerspro|NimbleCrawler|ninja|noxtrumbot|NPBot|Nutch|Nutscrape/|Octopus|Offline\ Explorer|Offline\ Navigator|OK\ Mozilla|OmniExplorer|OpaL|OpaL|Openbot|Openfind|OpenTextSiteCrawler|Oracle\ Ultra\ Search|OrangeBot|PackRat|PageGrabber|PagmIEDownload|panscient|Papa\ Foto|Papa\ Foto|pavuk|pcBrowser|PerMan [NC,OR] ## VRAIS ET FAUX ROBOTS NE RESPECTANT PAS LES REGLES
RewriteCond %{HTTP_USER_AGENT} PersonaPilot|PHP\ version|PingALink|PlantyNet_WebRobot|playstarmusic|Plucker|Pockey|Port\ Huron|Program\ Shareware|Progressive\ Download|ProPowerBot|prospector|ProWebWalker|Proxy|Prozilla|psbot|PSurf|psycheclone|puf|Pump|PushSite|PussyCat|PuxaRapido|PycURL|QRVA|QuepasaCreep|QueryN|Radiation|RealDownload|Reaper|Recorder|RedCarpet|RedKernel|ReGet|relevantnoise|replacer|RepoMonkey|RMA|Robozilla|Rover|RPT-HTTPClient|RTG30|Rufus|SAPO|SBIder|scooter|ScoutAbout|script|SearchExpress|searchhippo|searchpreview|searchterms|Second\ Street\ Research|Seekbot|Seeker|Serious|Shai|shelob|Shim-Crawler|SickleBot|sitecheck|SiteMapper|SiteSnagger|Slurpy\ Verifier|SlySearch|SlySearch|SmartDownload|sna-|snagger|So-net|sogou|sootle|SpaceBison|SpankBot|spanner|SpeedDownload|Spegla|Sphere|Sphider|SpiderBot|sproose|Sqworm|SQ\ Webscanner|Stamina|Stanford|Star\ Downloader|Stripper|studybot|sucker|SuperBot|SuperHTTP|Surfbot|SurfWalker|SurveyBot|suzuran|Szukacz|tAkeOut|TALWinHttpClient|tarspider|Teleport|Teleport\ Pro [NC,OR] ## VRAIS ET FAUX ROBOTS NE RESPECTANT PAS LES REGLES
RewriteCond %{HTTP_USER_AGENT} Telesoft|Templeton|TestBED|TheNomad|The\ Intraformant|TightTwatBot|Titan|toCrawl/UrlDispatcher|TrackBack|TrueRobot|True_Robot|Turing|TurnitinBot|TV33_Mercator|Twisted\ PageGetter|UCmore|UdmSearch|UIowaCrawler|UMBC|UniversalFeedParser|URLGetFile|URLy\ Warning|URL\ Control|URL_Spider_Pro|UtilMind|Vacuum|vagabondo|vayala|visibilitygap|vobsub|VoidEYE|VoilaBot|voyager|vspider|W3CRobot|w3mir|Web\ Image\ Collector|Web2WAP|WebaltBot|WebAuto|webbandit|WebCapture|Webclipping|webcollage|webcollector|WebCopier|WebCopy|webcraft@bea|webdevil|webdownloader|Webdup|WebEMailExtrac.*|WebEnhancer|WebFetch|WebFilter|WebFountain|WebGo|WebHook|Webinator|WebLeacher|WEBMASTERS|WebmasterWorldForumBot|WebMiner|WebMirror|webmole|WebReaper|WebSauger|WEBsaver|Website|Website\ eXtractor|Website\ Quester|WebSnake|Webster|WebStripper|websucker|webvac|webwalk|webweasel|WebWhacker|WebZip|Web\ Data\ Extractor|Web\ Downloader|Web\ Image\ Collector|Web\ Sucker|web\.by\.mail|Wells\ Search|WEP\ Search\ 00 [NC,OR] ## VRAIS ET FAUX ROBOTS NE RESPECTANT PAS LES REGLES
RewriteCond %{HTTP_USER_AGENT} WeRelateBot|whizbang|WhosTalking|Widow|Widows|Wildsoft\ Surfer|WinHttpRequest|WinHTTrack|WISEbot|WISEnutbot|WUMPUS|Wweb|WWW-Collector|WWWOFFLE|wwwster|Wysigot|x-Tractor|Xaldon|Xenu\'s|Xenus|XGET|Y!TunnelPro|YaDirectBot|YahooYSMcm|Yandex|Yeti|Zade|ZBot|zerxbot|Zeus|Zeus.*Webster|ZyBorg|^adwords|^Internet\ Explorer|^Mozilla$|^MSIE|^puf|^user|^User-Agent:\ |^User\ Agent:\ |^<sc [NC,OR] ## VRAIS ET FAUX ROBOTS NE RESPECTANT PAS LES REGLES
RewriteCond %{HTTP_USER_AGENT} ^curl|^Fetch\ API\ Request|GT\:\:WWW|^HTTP\:\:Lite|httplib|^Java|^LeechFTP|lwp-trivial|^LWP|libWeb|libwww|^PEAR|PECL\:\:HTTP|PHPCrawl|PycURL|python|^ReGet|Rsync|Snoopy|URI\:\:Fetch|urllib|WebDAV|^Wget [NC] ## BIBLIOTHEQUES / CLASSES HTTP DONT ON NE VEUT PAS. ATTENTION, CELA PEUT BLOQUER CERTAINES FONCTIONS DE VOTRE CMS. NE PAS TOUT EFFACER, MAIS CHERCHEZ LE NOM DE LA CLASSE HTTP CONCERNEE (DEMANDEZ AUX DEVELOPPEURS DE VOTRE CMS). CETTE LISTE BLOQUE 80% DES ROBOTS SPAMMEURS. IL FAUT LA CONSERVER.
## RewriteCond %{HTTP_USER_AGENT} ^[bcdfghjklmnpqrstvwxz\ ]{10,}|^[0-9a-z]{15,}|^[0-9A-Za-z]{19,}|^[A-Za-z]{3,}\ [a-z]{4,}\ [a-z]{4,} [OR] ## CEUX QUI INVENTENT DES NOMS AU HASARD, RETIREZ LES 2 DIESES EN DEBUT DE LIGNE POUR L'ACTIVER
RewriteRule (.*) - [F]
####On bloque toute une série de failles potentielles. La plupart des pirates utilisent ces moyens pour tester la faiblesse de votre site. Là, on les bloque avant qu'il ne pénètre votre CMS, blog ou e-commerce. -= TRÈS EFFICACE ET INDISPENSABLE =-
### FILTRE CONTRE XSS, REDIRECTIONS HTTP, base64_encode, VARIABLE PHP GLOBALS VIA URL, MODIFIER VARIABLE _REQUEST VIA URL, TEST DE FAILLE PHP, INJECTION SQL SIMPLE
RewriteEngine On
RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]
RewriteCond %{QUERY_STRING} ^(.*)(%3C|<)/?script(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=)?javascript(%3A|:)(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)document\.location\.href(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^.*(%24&x).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(127\.0).* [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=)(https?|ftp|mosConfig)(%3A|:)//(.*)$ [NC,OR] ## ATTENTION A CETTE REGLE. ELLE PEUT CASSER CERTAINES REDIRECTIONS RESSEMBLANT A: http://www.truc.fr/index.php?r=http://www.google.fr ##
RewriteCond %{QUERY_STRING} ^.*(_encode|localhost|loopback).* [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)GLOBALS(=|[|%[0-9A-Z]{0,2})(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)_REQUEST(=|[|%[0-9A-Z]{0,2})(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(SELECT(%20|\+)|UNION(%20|\+)ALL|INSERT(%20|\+)|DELETE(%20|\+)|CHAR\(|UPDATE(%20|\+)|REPLACE(%20|\+)|LIMIT(%20|\+)|CONCAT(%20|\+)|DECLARE(%20|\+))(.*)$ [NC]
RewriteRule (.*) - [F]
### INTERDIRE LES AUTRES TYPES DE FICHIER INDEX
<Files ~ "^(index)\.(p?s?x?htm?|txt|aspx?|cfml?|cgi|pl|php[3-9]|jsp|xml)$">
order allow,deny
deny from all
</Files>
### INTERDIRE L'AFFICHAGE DE CERTAINS FORMATS DE FICHIER
### EXÉCUTÉS PAR LE SERVEUR MAIS INTERDIT D'AFFICHAGE PAR LE NAVIGATEUR WEB
<Files ~ "\.(inc|class|sql|ini|conf|exe|dll|bin|tpl|bkp|dat|c|h|py|spd|theme|module|mdb|rar|bash|git|hg|log|svn|swp|cvs)$">
deny from all
</Files>
### INTERDIRE L'AFFICHAGE DE CERTAINS FICHIERS COMME config, option, login, setup, install, admin, home, default, xmlrpc.
### A ADAPTER SI CELA POSE PROBLEME, NOTAMMENT RETIREZ wp-(login|admin|config)| SI VOUS UTILISEZ WORDPRESS
#<Files ~ "^(wp-(login|admin|config)|config(\.inc)?|install?|admin|login|configure|configuration|options?\.inc|option|settings?(\.inc)?|functions?(\.inc)?|setup(\.inc)?|default|home|xmlrpc|bigdump|uploadTester|errors?|test|data|members?|hacke?r?d?|[-_a-z0-9.]*mafia[-_a-z0-9.]*|[-_a-z0-9.]*power[-_a-z0-9.]*|[-_a-z0-9.]*jihad[-_a-z0-9.]*|php|shell|ssh|root|cmd|[0-9]{1,6})\.(p?s?x?htm?l?|txt|aspx?|cfml?|cgi|pl|php[3-9]{0,1}|jsp?|sql|xml)$">
#order allow,deny
#deny from all
#</Files>
####On bloque certaines requêtes bizarres: -= TRÈS EFFICACE ET INDISPENSABLE =-
### DES FAUX URLS OU VIEUX SYSTEMES OBSOLETES, ON LES NEUTRALISE
RedirectMatch 403 (\.\./|base64|boot\.ini|eval\(|\(null\)|^[-_a-z0-9/\.]*//.*|/etc/passwd|^/_vti.*|^/MSOffice.*|/fckeditor/|/elfinder/|zoho/|/jquery-file-upload/server/|/assetmanager/|wwwroot|e107\_)
# DESACTIVE LES METHODES DE REQUETES TRACE TRACK DELETE
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK) [NC]
RewriteRule ^.* - [F]
##Si des pirates ont réussi à pénétrer votre site, ils installent un script qui leur permettent de prendre les commandes de votre hébergement. ##Ici, on bloque la plupart des commandes de ces scripts. À tester avec votre site web, car c'est très puissant et efficace. À la 5e ligne, remplacez “/home/loginftp/” par votre chemin de fichier absolu avant le dossier “www” ou “public_html”. Cette règle est très efficace mais peut casser votre CMS, blog ou e-commerce. À utiliser en dernier, puis à tester intensément, et effacez éventuellement la règle qui pose problème.
### FILTRE CONTRE PHPSHELL.PHP, REMOTEVIEW, c99Shell et autres
RewriteEngine On
RewriteCond %{REQUEST_URI} .*((php|my)?shell|remview.*|phpremoteview.*|sshphp.*|pcom|nstview.*|c99|r57|webadmin.*|phpget.*|phpwriter.*|fileditor.*|locus7.*|storm7.*)\.(p?s?x?htm?l?|txt|aspx?|cfml?|cgi|pl|php[3-9]{0,1}|jsp?|sql|xml) [NC,OR]
RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]
RewriteCond %{QUERY_STRING} ^(.*)=/home/loginftp/(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^work_dir=.*$ [OR]
RewriteCond %{QUERY_STRING} ^command=.*&output.*$ [OR]
RewriteCond %{QUERY_STRING} ^nts_[a-z0-9_]{0,10}=.*$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)cmd=.*$ [OR] ## ATTENTION A CETTE REGLE. ELLE PEUT CASSER VOTRE SITE ##
RewriteCond %{QUERY_STRING} ^c=(t|setup|codes)$ [OR]
RewriteCond %{QUERY_STRING} ^act=((about|cmd|selfremove|chbd|trojan|backc|massbrowsersploit|exploits|grablogins|upload.*)|((chmod|f)&f=.*))$ [OR]
RewriteCond %{QUERY_STRING} ^act=(ls|search|fsbuff|encoder|tools|processes|ftpquickbrute|security|sql|eval|update|feedback|cmd|gofile|mkfile)&d=.*$ [OR]
RewriteCond %{QUERY_STRING} ^&?c=(l?v?i?&d=|v&fnot=|setup&ref=|l&r=|d&d=|tree&d|t&d=|e&d=|i&d=|codes|md5crack).*$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)([-_a-z]{1,15})=(ls|cd|cat|rm|mv|vim|chmod|chdir|concat|mkdir|rmdir|pwd|clear|whoami|uname|tar|zip|unzip|gzip|gunzip|grep|more|ln|umask|telnet|ssh|ftp|head|tail|which|mkmode|touch|logname|edit_file|search_text|find_text|php_eval|download_file|ftp_file_down|ftp_file_up|ftp_brute|mail_file|mysql|mysql_dump|db_query)([^a-zA-Z0-9].+)*$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(wget|shell_exec|passthru|system|exec|popen|proc_open)(.*)$
RewriteRule (.*) - [F]
####Interdiction du hotlinking. Remplacez mondomaine par votre nom de domaine, et \.fr par fr, com, net, org ou autres extensions en gardant le \ avant le point.
### ON EVITE LE VOL D'IMAGES, VIDEO, SON, FEUILLE DE STYLE, PDF ET ZIP
### LES VISITEURS DOIVENT PASSER PAR LE SITE.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
#RewriteCond %{HTTP_REFERER} !^https?://[-a-z0-9.]*rhone\.fr$ [NC]
#RewriteCond %{HTTP_REFERER} !^https?://[-a-z0-9.]*rhone\.fr/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^https?://.*(translate|paypal|google|bing|yahoo|yandex|baidu|facebook|qwant|duck|ixquick|pinterest|twitter).*$ [NC] ## CES DOMAINES PEUVENT AFFICHER LES ELEMENTS DU SITE
RewriteCond %{HTTP_REFERER} !^mobile?://.*$ [NC] ## LES CONNEXIONS A TRAVERS LES APP DES MOBILES PEUVENT AFFICHER LES ELEMENTS DU SITE
#RewriteRule .*\.(gif|jpe?g?|jp2|png|svgz?|css|pdf|zip|gz|js|mp3|m4a|mp4|mov|divx|avi|wma?v?|wmp|swf|flv|docx?|xlsx?|pptx?|vbs|rtf|asf?x?|odt|ods|odp|odg|odb)$ - [NC,F]
\ No newline at end of file
<Files *>
Deny from all
</Files>
####Interdire de lister le contenu d’un dossier:
Options -Indexes
####Interdire l’accès à ce fichier depuis un navigateur web:
<Files .htaccess>
order allow,deny
deny from all
</Files>
\ No newline at end of file
<textarea rows="15" cols="124">
<?php
$chemin_fichier_log = 'cron/cron.log';
//Vérifie si le fichier existe
if (file_exists ( $chemin_fichier_log)) {
//Vérifié la taille du fichier
if(filesize($chemin_fichier_log)){
$fp = fopen($chemin_fichier_log, "r");
while (! feof($fp)) // Tant que l'on n'est pas la fin du fichier on continue de lire le fichier
{
$toute_ligne = fread($fp, filesize($chemin_fichier_log)); // On récupére tout le contenu (grâce la boucle while)
echo $toute_ligne; // On écrit le résultat
}
}
}
?>
</textarea>
\ No newline at end of file
<?php
// Fonction d'affichage du tableau des statistique de recherches
function membre()
{
global $connect;
$sql = "SELECT * FROM membre where profile=1 order by premiere_connexion desc;";
$res = $connect->query($sql);
// echo $plap;
echo '<table id="tablesortermember" class="table_admin" width=1020>';
echo '<thead><tr><th>Libellé</th><th>crpcen</th><th>Profile</th><th>1ère connexion</th><th>Adresse Mail</th><th>Echec</th></tr></thead>';
// function log_recherche($num_rech,$etude,$nom,$prenom,$annee,$date,$reponse,$date_deces,$lieu_deces,$date_acte,$id_individus)
while ($var = $res->fetch())
{
echo '<tr class=tablemembre ><td class=tablemembre>'.$var['libelle'].'</td>';
echo '<td class=tablemembre align=center>'.$var['login'].'</td>';
echo '<td class=tablemembre align=center>'.$var['profile'].'</td>';
$connexion = $var['premiere_connexion'];
if ($connexion == 1)
{
echo '<td class=tablemembre align=center>'.$var['premiere_connexion'].'</td>';
}
else
{
echo '<td class=tablemembre style="background-color:#f26858;color:#fafafa;" align=center>'.$var['premiere_connexion'].'</td>';
}
echo '<td class=tablemembre>'.$var['adresse_mail'].'</td>';
$echec = $var['echec'];
if ($echec == 0)
{
echo '<td class=tablemembre align=center>'.$var['echec'].'</td></tr>';
}
elseif ($echec == 1)
{
echo '<td class=tablemembre style="background-color:#fca342;color:#fafafa;" align=center>'.$var['echec'].'</td></tr>';
}
elseif ($echec == 2)
{
echo '<td class=tablemembre style="background-color:#f26858;color:#fafafa;" align=center>'.$var['echec'].'</td></tr>';
}
}
echo '</table>';
}
//fca342
//fea88b
?>
<div id=stats>
<!-- if you need user information, just put them into the $_SESSION variable and output them here -->
<?php
membre();
?>
</div>
\ No newline at end of file
<?php
$search='';
if (getPost('enregistrer') == 'Enregistrer') {
$login = getPost('login');
$description= getPost('description');
$mail_login= getPost('mail');
$profil= getPost('profil');
if (! empty($login) && ! empty($description) && ! empty($mail_login) && ! empty($profil)) {
// on teste si une entrée de la base contient ce login
$sql = "SELECT count(*) as nb FROM membre WHERE login=". sql_escape($login);
$result = $connect->query($sql);
$data = $result->fetch();
if($data["nb"] == 1){
$message = "Ce login existe déjà !";
}else{
if(!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/",$mail_login)){
$message = "L'adresse mail n'est pas conforme !";
}else{
$message="Tout est OK";
$mtp=generer_mot_de_passe();
$sql = "INSERT INTO membre(id, login, libelle, pass_md5, profile, adresse_mail) VALUES (NULL,".sql_escape($login).",".sql_escape($description).",
".sql_escape(_passCrypt($mtp)).",".sql_escape($profil).",".sql_escape($mail_login).")";
$result = $connect->query($sql);
$search = [
"login" => $login,
"description" => $description,
"mail" => $mail_login,
"profil" => $profil,
"motdepasse" => $mtp,
];
// Sujet commun à plusieurs messages
$mail_sujet = sprintf("[%s] Création du compte pour %s",
config('nom_application'),
$search['description']);
// TODO externaliser dans TPL
$mail_corps = <<<_CORPS_MAIL_
<style>
.signature{font-family:'verdana';font-size:75%%;font-weight:bold;}
.corps{font-family:'verdana';font-size:80%%;}
li{font-family:'verdana';font-size:80%%;}
</style>
<p class=corps><br/>Bonjour,<br/><br/>Voici les informations nécessaires à votre étude, pour la connexion à
l'application %s.<br/>
</p>
<p class=corps>• L'adresse internet de connexion est %s<br/>
• L'identifiant de votre étude correspond à votre code CRPCEN est : %s<br/>
• Votre mot de passe est : %s<br/>
</p>
<p class=corps>
<u>Attention : Il vous sera demandé de personnaliser le mot de passe de votre étude dès votre première connexion.</u><br/>
<br/>
Un document d'aide à l'utilisation est présent sur la page d'accueil de l'application.<br/>
<b>Pour toute anomalie, merci de contacter le bureau suivi des dispositifs du %s (%s).</b><br/>
</p>
<p class=corps>Cordialement,</p><br/>
<p class=signature>L'équipe %s<br/>%s</p>
_CORPS_MAIL_;
$mail_corps = sprintf($mail_corps, config('nom_application'), config('adresse_url_appli'), $search['login'], $search['motdepasse'],
config('nom_departement_long'), config('mail_gestion'),config('nom_application'),config('nom_departement_long'));
sendResponseEmail($mail_login, null, $mail_sujet, $mail_corps, null);
$message = "Le nouveau membre de l'application a été bien créé.<br/><a class='reinit' href='index.php'>Retour à l'accueil</a>";
}
}
}
else{
$message = "Au moins un des champs est vide";
}
}
/**
* Génération d'un mot de passe aléatoirement.
*
* @param int $nb_caractere nouveau mot de passe
* @return string $mot_de_passe
*
*/
function generer_mot_de_passe($nb_caractere = 12)
{
$mot_de_passe = "";
$chaine = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWXxYyZz0123456789+_-#@!$%?&";
$longeur_chaine = strlen($chaine);
for($i = 1; $i <= $nb_caractere; $i++)
{
$place_aleatoire = mt_rand(0,($longeur_chaine-1));
$mot_de_passe .= $chaine[$place_aleatoire];
}
return $mot_de_passe;
}
echo templateRender("frm_create_user.tpl", $search);
?>
<br />
<div id="message_r">
<?php
if (isset($message)) {
echo $message;
}
?>
</div>
\ No newline at end of file
{
"require": {
"twig/twig": "~1.33"
}
}
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "5b2b7010639332d5bdf75dbeb35b5493",
"content-hash": "46b6bf071a126be15ae81e7f6a1d0e5b",
"packages": [
{
"name": "twig/twig",
"version": "v1.33.1",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "a87f959f4b691da66aada267a2dfdb260d0bb58a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/a87f959f4b691da66aada267a2dfdb260d0bb58a",
"reference": "a87f959f4b691da66aada267a2dfdb260d0bb58a",
"shasum": ""
},
"require": {
"php": ">=5.2.7"
},
"require-dev": {
"psr/container": "^1.0",
"symfony/debug": "~2.7",
"symfony/phpunit-bridge": "~3.3@dev"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.33-dev"
}
},
"autoload": {
"psr-0": {
"Twig_": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com",
"homepage": "http://fabien.potencier.org",
"role": "Lead Developer"
},
{
"name": "Armin Ronacher",
"email": "armin.ronacher@active-4.com",
"role": "Project Founder"
},
{
"name": "Twig Team",
"homepage": "http://twig.sensiolabs.org/contributors",
"role": "Contributors"
}
],
"description": "Twig, the flexible, fast, and secure template language for PHP",
"homepage": "http://twig.sensiolabs.org",
"keywords": [
"templating"
],
"time": "2017-04-18 21:43:11"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": [],
"platform-dev": []
}
<?php
require_once('vendor/mail/class.phpmailer.php');
require_once("vendor/mail/class.smtp.php");
// Active les traces HTML
// 0:aucune, 1:minimale, 2:tout
$notaire_debug = 2;
// Si non vide, affiche le message dans la page d'accueil
//$message_maintenance = "L'application est en maintenance jusqu'au 30 juin";
setlocale(LC_TIME, 'fr', 'fr_FR', 'fr_FR.ISO8859-1');
// Configuration BDD mysql
$host_mysql = "localhost";
$user_mysql = "notaires";
$pass_mysql = "notaires";
$bdd_mysql = "notaires_test";
$bdd_charset = "UTF8";
$bdd_option = array(PDO::MYSQL_ATTR_LOCAL_INFILE => true);
//Variables générales
$nom_application = "Rhône + Notaires";
$adresse_url_appli = "http://localhost/notaires";
$logo_appli = "css/images/logo.png";
$site_favicon = "css/images/favicon.ico";
$nom_departement = "Rhône";
$nom_departement_long = "Département du Rhône";// Nom propre du Département
$nom_departement_commun = "département du Rhône"; // Nom commun du département
$site_departement = "https://www.rhone.fr/";
$site_cil_departement = "www.cil.rhone.fr";
// Mail
$smtp_mail = "smtp.rhone.fr";
$port_smtp_mail = "25";
$mail_gestion = "change.me@rhone.fr"; // Adresse générique des gestionnaires métier de l'application
$password_mail = "change me";
// Indique le mode prod, les emails sont réellement envoyés
$prod = 1;
// Message de service utilisé dans le sujet des emails
$mess_prod = "";
// Signature des emails envoyés aux notaires
$mail_signature = "Sophie Siffert,<br/>Chef de Service<br/>Service Prestations PCH, ADPA et Aide sociale<br/>Direction de l'autonomie<br/>Département du Rhône";
// PDF
$ville_service = "Lyon"; // Ville dans l'entête de la lettre de réponse au notaire
$logo_pdf_departement = ".private/logo_pdf.png";
$logo_pdf_departement2 = ".private/logo_.png";
$logo_service_pdf = ".private/service_.png";
$interlocuteur_pdf = "<coord>Votre interlocuteur : Bureau suivi des dispositifs / Service Prestations / Direction de
l'Autonomie</coord><symbole> ) </symbole><coord>04 72 61 77 09</coord><symbole> * </symbole><coord>".$mail_gestion."</coord>";
$signature_pdf = ".private/signature.png";
$bas_page_pdf_adresse_department = ".private/baspage_.png";
// #####################################################################################################################
//
// Section non configurable
//
// #####################################################################################################################
$version_application = "Version 1.4.0.beta";
// TODO à déplacer dans notaires_fonctions
$jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
$mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
// Workaround config
$NOTAIRE_CONFIG = [];
configSet("nom_departement", $nom_departement);
configSet("nom_departement_long", $nom_departement_long);// Nom propre du Département
configSet("nom_departement_commun", $nom_departement_commun); // Nom commun du département
configSet("site_departement", $site_departement);
configSet("nom_application", $nom_application);
configSet("mess_prod", $mess_prod);
configSet("mail_signature", $mail_signature);
configSet("site_cil_departement", $site_cil_departement);
configSet("logo_pdf_departement", $logo_pdf_departement);
configSet("logo_service_pdf", $logo_service_pdf);
configSet("interlocuteur_pdf", $interlocuteur_pdf);
configSet("ville_service", $ville_service);
configSet("signature_pdf", $signature_pdf);
configSet("bas_page_pdf_adresse_department", $bas_page_pdf_adresse_department);
configSet("adresse_url_appli", $adresse_url_appli);
// Email
configSet("mail_gestion", $mail_gestion);
configSet("send_mail", true); // envoyer les emails en réel ou non
// Gestion compte
configSet("max_login", 3); // nombre max de tentatives avant blocage du compte
// INIT MAILER
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = $smtp_mail; // SMTP server
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->Port = $port_smtp_mail;
$mail->Username = $mail_gestion;
$mail->Password = $password_mail;
$mail->SetFrom($mail_gestion);
$mail->CharSet = "UTF-8";
$mail->IsHTML(true);
// Sous Windows php 5.6 pour pouvoir envoyer les email sans erreur SSL
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
// INIT CONNECT SQL
try {
$connect = new PDO("mysql:host=$host_mysql;dbname=$bdd_mysql;charset=$bdd_charset", $user_mysql, $pass_mysql,$bdd_option);
if (!$connect) {
die('Invalid connect: ' . $connect->errorInfo());
}
} catch ( PDOException $e ) {
echo ($e->getMessage());
}
function configSet($key, $value)
{
global $NOTAIRE_CONFIG;
if(isset($key) && isset($value) ) $NOTAIRE_CONFIG[$key] = $value;
}
function config($key)
{
global $NOTAIRE_CONFIG;
if(isset($key) && isset($NOTAIRE_CONFIG[$key]) ) return $NOTAIRE_CONFIG[$key];
return NULL;
}
// Renvoie tout le tableau des paramètres
function configAll()
{
global $NOTAIRE_CONFIG;
return $NOTAIRE_CONFIG;
}
?>
\ No newline at end of file
<Files *>
Deny from all
</Files>
####Interdire de lister le contenu d’un dossier:
Options -Indexes
####Interdire l’accès à ce fichier depuis un navigateur web:
<Files .htaccess>
order allow,deny
deny from all
</Files>
\ No newline at end of file
Jeudi 20 Avril 2017 à 11:12:58
Extraction quotidienne Production
Réussite : Extraction réussie : Production</br> Nombre de lignes insérées : 83112 lignes
Jeudi 20 Avril 2017 à 11:13:04
Extraction quotidienne Production table demande
Réussite : Extraction réussie : Production</br> Nombre de lignes insérées : 6555 lignes