Adrien Poupa

Blog d'un étudiant ingénieur en informatique

Menu Fermer

Mise en place d’un environnement chroot avec identification en clés SSH

chroot

Sur mon serveur dédié, je voulais mettre en place un environnement chroot afin de pouvoir donner un accès limité à leur espace à des utilisateurs externes.

La mise en place d’un tel espace n’est pas complexe en soit, mais j’ai en revanche eu beaucoup plus de mal à activer la connexion par un jeu de clés SSH.

Nous allons partir du principe que le système est déjà configuré pour la connexion avec des clés SSH.

On crée notre utilisateur « utilisateur »

useradd utilisateur

Ici, on va donc appliquer notre prison à l’utilisateur « utilisateur », partir du principe que son répertoire de chroot est /home/www/utilisateur (pour de l’hébergement par exemple).

Lire la suite

Autocomplétion des adresses avec la Base Adresse Nationale

ban

Lors de mon stage à Diagamter cet été, j’ai eu pour tâche de créer un formulaire d’autocomplétion des adresses. Après avoir fait un tour d’horizon des outils disponibles, un m’a marqué : la Base Adresse Nationale. Tout d’abord parce cette API est officielle, qu’elle peut faire office de référence ; toutes les modifications de communes y sont répertoriées rapidement. Ensuite, elle simple, bien documentée et n’a pas de quota de requête à ma connaissance.

Le but est donc de mettre en place un formulaire simple qui va envoyer des requêtes à l’API lorsqu’on saisit d’abord le code postal, puis la ville et enfin l’adresse en elle-même. On va donc se servir de jQuery et jQuery UI pour mettre en place l’autocomplétion :

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.7.3/themes/base/jquery-ui.css">

Ensuite, on met en place les inputs en eux-mêmes :

<input name="cp" id="cp" type="text" placeholder="CP">
<input name="ville" id="ville" type="text" placeholder="Ville">
<input name="adresse" id="adresse" type="text" placeholder="Adresse">

Enfin, on s’attaque aux fonctions d’autocomplétion : tout d’abord le code postal. Le but est de saisir un code et d’afficher la ville à laquelle il est rattaché. Par exemple, si on tape « 31000 », on obtiendra « 31000 – Toulouse ». Un clic dessus permettra de remplir les deux premiers champs. De la même façon, si on tape « Toulouse » dans le deuxième champ, on aura le même résultat.

On décode ensuite l’objet json GeoCode retourné pour exploiter le code postal, le nom de la ville et l’adresse.

Code des trois autocomplétions :

<script>
$("#cp").autocomplete({
	source: function (request, response) {
		$.ajax({
			url: "https://api-adresse.data.gouv.fr/search/?postcode="+$("input[name='cp']").val(),
			data: { q: request.term },
			dataType: "json",
			success: function (data) {
				var postcodes = [];
				response($.map(data.features, function (item) {
					// Ici on est obligé d'ajouter les CP dans un array pour ne pas avoir plusieurs fois le même
					if ($.inArray(item.properties.postcode, postcodes) == -1) {
						postcodes.push(item.properties.postcode);
						return { label: item.properties.postcode + " - " + item.properties.city, 
								 city: item.properties.city,
								 value: item.properties.postcode
						};
					}
				}));
			}
		});
	},
	// On remplit aussi la ville
	select: function(event, ui) {
		$('#ville').val(ui.item.city);
	}
});
$("#ville").autocomplete({
	source: function (request, response) {
		$.ajax({
			url: "https://api-adresse.data.gouv.fr/search/?city="+$("input[name='ville']").val(),
			data: { q: request.term },
			dataType: "json",
			success: function (data) {
				var cities = [];
				response($.map(data.features, function (item) {
					// Ici on est obligé d'ajouter les villes dans un array pour ne pas avoir plusieurs fois la même
					if ($.inArray(item.properties.postcode, cities) == -1) {
						cities.push(item.properties.postcode);
						return { label: item.properties.postcode + " - " + item.properties.city, 
								 postcode: item.properties.postcode,
								 value: item.properties.city
						};
					}
				}));
			}
		});
	},
	// On remplit aussi le CP
	select: function(event, ui) {
		$('#cp').val(ui.item.postcode);
	}
});
$("#adresse").autocomplete({
	source: function (request, response) {
		$.ajax({
			url: "https://api-adresse.data.gouv.fr/search/?postcode="+$("input[name='cp']").val(),
			data: { q: request.term },
			dataType: "json",
			success: function (data) {
				response($.map(data.features, function (item) {
					return { label: item.properties.name, value: item.properties.name};
				}));
			}
		});
	}
});
</script>

Fiddle de démonstration :

Installer un serveur web LNPM (Linux, Nginx, PHP, MariaDB)


Source: unixmen.com

Cet article est surtout là pour me servir de pense-bête en cas de réinstallation d’un serveur, mais sait-on jamais, il peut être utile à d’autres 🙂

Le but est de mettre en place un serveur web qui soit le plus léger possible ; pour ce faire, j’utilise Linux et sa distribution Debian (8 Jessie pour le tutoriel ci-dessous, mais facilement adaptable pour d’autres version), Nginx en remplacement d’Apache, PHP 7 en FPM et MariaDB en remplacement de MySQL.

Lire la suite

Bangkok : the big mango

Temple Wat Pho

Dernier voyage de mon immersion, mais pas des moindres : Bangkok ! Par une matinée à la chaleur dévastatrice, nous commençons par visiter l’incontournable Grand Palace (Palais royal). Malheureusement, il était bondé de touristes. Pour ne rien arranger, nous étions arrivés lors de la journée la plus sainte de leur calendrier, le Visakha Bucha : anniversaire du Bouddha, cette journée est la plus importante du calendrier religieux en Thaïlande, où 90% de la population est bouddhiste. Nous avons ainsi pu voir des cohortes de thaïlandais prier lors dans les temples que nous visitions, ce qui était assez unique et inattendu.

Lire la suite

Quelques jours à Bali

Pura Ulun Danu Bratan après la tempête

Pura Ulun Danu Bratan après la tempête

Pour ma première sortie hors de Malaisie, j’ai décidé de ne pas faire les choses à moitié et d’aller en Indonésie sur l’île de Bali, destination dont la simple évocation suffit à faire rêver et imaginer des paysages idylliques. C’est en partie vrai !

Quatre jours ne suffisent pas mais permettent de se faire une bonne idée de l’île. De toute façon, j’ai quand même quelques cours entre mes voyages 😉

Lire la suite

Laravel : envoi du token CSRF lors d’un appel Ajax

Lors d’une requête POST en Ajax sous Laravel 5, il faut passer le jeton CSRF sous peine de recevoir une erreur de TokenMismatch, la protection contre les failles CSRF s’activant. Pour ce faire, je ne trouve pas la documentation très simple, alors qu’il suffit de passer l’attribut ‘_token’ dans le champ data (sous jQuery).

Ainsi, il n’y a qu’une ligne à rajouter :

$.ajax({
	type: "POST",
	url: "{{ url('/votre-url') }}",
	data: {
		...
		_token: "{!! csrf_token() !!}"
	}
})

Une alternative consiste à rajouter le champ complet contenant le jeton dans le fichier de template adéquat :

{!! csrf_field() !!}

Puis de recopier un code similaire au précédent, à ceci près qu’il ira chercher le code rajouté plus haut dans la page :

$.ajax({
	type: "POST",
	url: "{{ url('/votre-url') }}",
	data: {
		...
		_token: $('meta[name="csrf-token"]').attr('content')
	}
})

Prise de hauteur dans les Cameron Highlands

Plantations de thé

Plantations de thé, Cameron Highlands

Pour s’éloigner de la chaleur de Kuala Lumpur, rien de tel que les Cameron Highlands et leurs 22°C de température moyenne annuelle. Tout commence en 1885, quand Sir William Cameron explore les lieux qui seront désignés par son nom ; il y voit alors des plateaux et de forts dénivelés. Il ne se passe pas grand chose durant les quarante ans suivants, jusqu’au moment où George Maxwell déclare, après neuf jours d’observation, que les lieux devraient servir de station de montagne.

Enfin, en 1925, des tentatives de plantation de thé, légumes, fruits et café sont réalisées. Après confirmation de la bonne pousse du thé, les anglais s’intéressent de plus près aux Cameron Highlands et la construction d’une route démarre en 1928. Un an plus tard, les premières concessions de thé sont vendues, les cultures prennent leur place à la jungle.

Lire la suite

Visite de Langkawi

IMG_20160415_123702

Langkawi, surnommée « Perle de Kedah », est un archipel de 104 îles situé à 30 kilomètres des côtes au nord ouest de la Malaisie. Comme Melaka, elle a une histoire riche de marchands, conquêtes et guerres; les premières traces sont à mettre au crédit de voyageurs chinois, alors appelée Long-ya-pu-ti (龍牙菩提)  par le voyageur Wang_Dayuan au XIVème siècle. Au XVème siècle, l’île abritait des plantations de poivre; le général français Augustin de Beaulieu parlait alors de « Lancahui ».

Historiquement, l’île a accueilli des gens de la mer, pirates et pêcheurs. La légende locale, qui m’a été rapportée par le chauffeur de taxi que nous avions engagé le premier jour, rapporte qu’à la fin du XVIIIème siècle, une femme du nom de Mahsuri fut accusée – à tort – d’adultère et exécutée , en conséquence de quoi cette dernière maudit l’île pour sept génération. Suite à son châtiment, l’île fut capturée par les Thaïlandais, et les locaux massacrés et réduits à l’esclavage.

Lire la suite

Un week-end à Melaka

Le week-end arrivant, il est temps de quitter Kuala Lumpur pour une ville à taille plus humaine, Melaka (Malacca en anglais). Pour y aller, rien de tel que le bus, avec des offres à RM10 (approximativement 2€), et un passage obligé vers la gare routière TBS, qui ressemble à s’y méprendre à un aéroport.

1 TBS

C’est son histoire riche qui nous a décidé à la visiter : plus vieux port de Malaisie, ses premières traces remontent à la fin du XIVe siècle, quand Parameswara, prince indonésien, a fondé la ville alors qu’il avait été chassé de son royaume. Au XVe et XVIe siècle, la ville fut le centre du monde malais et une des plus prospères grâce à son commerces avec des marchands arabes, chinois, perses, indiens et d’autres. L’influence grandissante des vendeurs arabes poussèrent le prince à adopter l’islam et transformer Melaka en sultanat.

Lire la suite

Cours et première semaine à Kuala Lumpur

Programme de cours

Le lendemain de notre arrivée, première journée de cours où l’on s’aperçoit que cela risque de ne pas être trop difficile de profiter de la Malaisie : nous allons (ré)apprendre à coder en POO en C++ tout en faisant des graphes UML, palabrer en Entrepreneurship, apprendre quelques notions en Operating Systems et découvrir le merveilleux monde de l’HTML et du PHP (hahaha). Mention spéciale pour le professeur d’OS qui nous propose de toucher son stylo quand nous donnons une bonne réponse, nous donne des appréciations suffixées de « baby » ou encore nous demande de préciser notre genre M/F lors d’un e-mail… 🙂

Lire la suite