From dbba54c7ad1df84a4e7af71ed806b4c48c1a5fd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Fri, 16 Mar 2018 10:28:10 +0100 Subject: [PATCH] Origin for api-tokens --- server/apps/client.js | 4 +- server/public/assets/js/functions.js | 11 +++- server/public/assets/js/listeners.js | 1 + server/public/assets/js/token_apply.js | 4 ++ .../public/layouts/client/channel.handlebars | 2 - server/public/layouts/client/token.handlebars | 21 ++----- server/routing/client/api.js | 62 ++++++++++++++----- 7 files changed, 68 insertions(+), 37 deletions(-) diff --git a/server/apps/client.js b/server/apps/client.js index 03103a2f..71fe8782 100755 --- a/server/apps/client.js +++ b/server/apps/client.js @@ -38,7 +38,9 @@ var bodyParser = require('body-parser'); var cookieParser = require("cookie-parser"); var cookies = require("cookie"); var helmet = require('helmet') -app.use(helmet()) +app.use(helmet({ + frameguard: false +})); app.use( bodyParser.json() ); // to support JSON-encoded bodies app.use(bodyParser.urlencoded({ // to support URL-encoded bodies extended: true diff --git a/server/public/assets/js/functions.js b/server/public/assets/js/functions.js index 50c1f1ba..54eccabc 100644 --- a/server/public/assets/js/functions.js +++ b/server/public/assets/js/functions.js @@ -168,6 +168,7 @@ function get_list_ajax() { type: "POST", data: { userpass: "", + token: zoff_api_token, }, url: "/api/list/" + chan.toLowerCase(), success: function(response) { @@ -242,7 +243,8 @@ function get_np_ajax() { type: "POST", data: { userpass: "", - fetch_song: true + fetch_song: true, + token: zoff_api_token }, url: "/api/list/" + chan.toLowerCase() + "/__np__", success: function(response) { @@ -269,7 +271,8 @@ function del_ajax(id) { type: "DELETE", data: { adminpass: "", - userpass: "" + userpass: "", + token: zoff_api_token }, url: "/api/list/" + chan.toLowerCase() + "/" + id, success: function(response) { @@ -301,6 +304,7 @@ function add_ajax(id, title, duration, playlist, num, full_num, start, end) { duration: duration, end_time: end, start_time: start, + token: zoff_api_token }, url: "/api/list/" + chan.toLowerCase() + "/" + id, success: function(response) { @@ -327,7 +331,8 @@ function vote_ajax(id) { type: "PUT", data: { adminpass: "", - userpass: "" + userpass: "", + token: zoff_api_token }, url: "/api/list/" + chan.toLowerCase() + "/" + id, success: function(response) { diff --git a/server/public/assets/js/listeners.js b/server/public/assets/js/listeners.js index a71a8a48..6305e0b3 100755 --- a/server/public/assets/js/listeners.js +++ b/server/public/assets/js/listeners.js @@ -29,6 +29,7 @@ var showDiscovery = false; var player_ready = false; var viewers = 1; var temp_user_pass = ""; +var zoff_api_token = "AhmC4Yg2BhaWPZBXeoWK96DAiAVfbou8TUG2IXtD3ZQ="; var retry_frontpage; var chromecast_specs_sent = false; var dragging = false; diff --git a/server/public/assets/js/token_apply.js b/server/public/assets/js/token_apply.js index 51760d06..33141669 100644 --- a/server/public/assets/js/token_apply.js +++ b/server/public/assets/js/token_apply.js @@ -16,6 +16,8 @@ $(document).ready(function() { $(".token-form").on("submit", function(e) { e.preventDefault(); var email = $("#email_address").val(); + var origin = $("#origin").val(); + $("#origin").attr("readonly", true); $("#email_address").attr("readonly", true); $(".submit").toggleClass("disabled"); $(".full-form-token").removeClass("hide"); @@ -24,6 +26,7 @@ $(document).ready(function() { type: "POST", url: "/api/apply", data: { + origin: origin, email: email, "g-recaptcha-response": captcha_response, }, @@ -34,6 +37,7 @@ $(document).ready(function() { } else { $("#email_address").attr("readonly", false); $(".submit").toggleClass("disabled"); + $("#origin").attr("readonly", false); grecaptcha.reset(); Materialize.toast("Something went wrong. Sure that email hasn't been used for another token?", 3000, "red lighten"); } diff --git a/server/public/layouts/client/channel.handlebars b/server/public/layouts/client/channel.handlebars index 32d64138..0a4dbf43 100755 --- a/server/public/layouts/client/channel.handlebars +++ b/server/public/layouts/client/channel.handlebars @@ -11,8 +11,6 @@ {{/if}} {{> channel/tabs}} -