Calculate countdown by reading X-FIC-time giving by the server instead of rely on user system date

This commit is contained in:
nemunaire 2014-11-23 16:56:30 +01:00
parent edce0a99f6
commit 5d7967a157
5 changed files with 29 additions and 18 deletions

View File

@ -61,4 +61,4 @@ RUN chmod 777 /var/www/fic-server/onyx/cache/ /var/www/fic-server/onyx/cache/tem
EXPOSE 80/tcp 443/tcp
VOLUME ["/var/www/fic-server/out","/var/www/fic-server/files","/var/www/fic-server/submission","/var/www/fic-server/misc/shared"]
CMD ["sh", "-c", "chown -R www-data:www-data /var/www/fic-server/misc /var/www/fic-server/submission; cd /var/www/fic-server/misc; if ! [ -f server.crt ]; then bash ./CA.sh -newserver; fi; bash ./CA.sh -gencrl && service nginx start && service php5-fpm start && service mysql start && echo "Copying files..." && ../gen_hash_link_files.sh --copy ../files-in ../files && ../nginx_gen_team.sh > ../misc/shared/nginx-teams.conf && (../launch_local.sh &); /bin/bash"]
CMD chown -R www-data:www-data /var/www/fic-server/misc /var/www/fic-server/submission; cd /var/www/fic-server/misc; if ! [ -f server.crt ]; then bash ./CA.sh -newserver; fi; bash ./CA.sh -gencrl && service nginx start && service php5-fpm start && service mysql start && echo "Copying files..." && ../gen_hash_link_files.sh --copy ../files-in ../files; ../nginx_gen_team.sh > ../misc/shared/nginx-teams.conf; (../launch_local.sh &); /bin/bash

1
TODO
View File

@ -1,6 +1,5 @@
- Départager les ex-æquo dans le classement
- Résoudre le problème potentiel de famine de l'ordonnanceur en cas de brute-force d'une équipe
- Ajouter un header dans nginx avec $msec ou $time_iso8601 et calculer le timer à partir de cette valeur, au lieu de se baser sur l'horloge de l'utilisateur
- Quand est généré la CRL ?
- Ajouter dans la conf de nginx un ssl_dhparam + générer le fichier dans un script
- Mettre à jour Smarty (et passer en « secure mode » ?)

View File

@ -31,6 +31,7 @@ server {
add_header Strict-Transport-Security "max-age=2592000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-FIC-time $msec;
error_page 400 /errors/400/index.html;
error_page 403 /errors/403/index.html;

View File

@ -1,24 +1,34 @@
function update_end()
function update_end(server_time, receive_date)
{
var left;
if (typeof end_challenge === 'undefined')
left = 14400;
else
left = (end_challenge - new Date())/1000;
var elapsed = new Date() - receive_date;
if (left < 0) left = 0;
var left = 10800;
if (typeof end_challenge !== 'undefined')
left = (end_challenge - server_time - elapsed)/1000;
var heure = Math.floor(left / 3600);
var min = Math.floor((left / 60) % 60);
var sec = Math.floor(left % 60);
if (left < 0) left = 0;
$("#hours").html(( heure < 10 ? "0" : "" ) + heure);
$("#min").html(( min < 10 ? "0" : "" ) + min);
$("#sec").html(( sec < 10 ? "0" : "" ) + sec);
var heure = Math.floor(left / 3600);
var min = Math.floor((left / 60) % 60);
var sec = Math.floor(left % 60);
$("#hours").html(( heure < 10 ? "0" : "" ) + heure);
$("#min").html(( min < 10 ? "0" : "" ) + min);
$("#sec").html(( sec < 10 ? "0" : "" ) + sec);
}
function getHeader(name, def) {
for (var j = 0; j < getHttp.length(); j++) {
if (getHttp.header(j) == name)
return getHttp.data(j);
}
return def;
}
$(document).ready(function() {
setInterval( function() {
update_end();
}, 1000);
server_time = new Date(getHeader("X-FIC-time"));
receive_date = new Date();
setInterval( function() {
update_end(server_time, receive_date);
}, 1000);
});

View File

@ -7,6 +7,7 @@
add_header Strict-Transport-Security "max-age=2592000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-FIC-time $msec;
location / {
if (-f $request_filename) {