Scan your site now

Security Report Summary
E
Site:
Scanned Site(s):
1
IP Address:
50.62.58.17
Report Time:
28 Sep 2020 05:34:13 UTC
Checks:
Window Referrer
Window Opener
Comments
Enabled Debugging
Unsafe Functions
Warning:
Please have a look at the security issues / warnings in the report.
Security Issues
Window Referrer
  • window.open("about:blank","onesignal-http-popup","'scrollbars=yes, width="+u+", height="+c+", top="+d+", left="+l);[http://www.3dpower.in/js/OneSignalSDK.js]
  • window.open(q, "viewOnYT")}), y = b("<span/>").html(b.mbYTPlayer.controls.onlyYT).addClass("mb_OnlyYT ytpicon").on("click", function(){b(a).fullscreen(c.realfullscreen)}), w = b("<div/>").addClass("mb_YTVPProgress").css("position", "absolute").click(function(t){z.css({width:t.clientX - z.offset().left}), a.timeW = t.clientX - z.offset().left, d.find(".mb_YTVPLoaded").css({width:0}), t = Math.floor(a.player.getDuration()), a["goto"] = z.outerWidth() * t / w.outerWidth(), a.player.seekTo(parseFloat(a["goto"]), !0), d.find(".mb_YTVPLoaded").css({width:0})}), x = b("<div/>").addClass("mb_YTVPLoaded").css("position", "absolute"), z = b("<div/>").addClass("mb_YTVTime").css("position", "absolute");[http://www.3dpower.in/js/combinejs.js]
Warnings
Comments
Comments should be removed from the public code of a web application, since it can give an aggressor critical insights into the inner structure of the program. By using this information, the attacker could easier understand how the user session is handled by javascript or figure out the pathway data is sent to the server.
  • /*Start Of Google Analytics code*/[http://www.3dpower.in/js/common.js]
  • /* Start of Remarketing Script */[http://www.3dpower.in/js/common.js]
  • /* <![CDATA[ */[http://www.3dpower.in/js/common.js]
  • /* ]]> */[http://www.3dpower.in/js/common.js]
  • /*Start of Notification Script */[http://www.3dpower.in/js/common.js]
  • /* Set to true to automatically prompt visitors */[http://www.3dpower.in/js/common.js]
  • /* Set to false to hide */[http://www.3dpower.in/js/common.js]
  • /* One of 'small', 'medium', or 'large' */[http://www.3dpower.in/js/common.js]
  • /* One of 'default' (red-white) or 'inverse" (white-red) */[http://www.3dpower.in/js/common.js]
  • /* Either 'bottom-left' or 'bottom-right' */[http://www.3dpower.in/js/common.js]
  • /* Show an icon with 1 unread message for first-time site visitors */[http://www.3dpower.in/js/common.js]
  • /*Start of Screen Resolution script*/[http://www.3dpower.in/js/common.js]
  • /*if(window.screen.width < 768){ window.location.href = '<?php echo SITEURL; ?>amphtml/conversion/bungalowfloorplan'; }*/[http://www.3dpower.in/js/common.js]
  • /*Start of talk.to Script var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date(); (function(){ var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0]; s1.async=true; s1.src='https://embed.tawk.to/595f6bc11dc79b329518d1b9/default'; s1.charset='UTF-8'; s1.setAttribute('crossorigin','*'); s0.parentNode.insertBefore(s1,s0); })();*/[http://www.3dpower.in/js/common.js]
  • /*Start of Google TRanslate Scripti Script*/[http://www.3dpower.in/js/common.js]
  • /*start of toast message script*/[http://www.3dpower.in/js/common.js]
  • /* Copyright The Closure Library Authors. SPDX-License-Identifier: Apache-2.0*/[http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit]
  • /*setTimeout(function () { $("#fancybox-close").trigger("click"); }, 1000);*/[http://www.3dpower.in/]
  • /*Quick Contact slide bar function*/[http://www.3dpower.in/js/sample.js]
  • /*$('.close-on-click').click(function(){ $(this).css('display', 'none'); });*/[http://www.3dpower.in/js/sample.js]
  • /*Quick Contact slide bar function*/[http://www.3dpower.in/js/sample.js]
  • /*banner slider*/[http://www.3dpower.in/js/sample.js]
  • /*Popup Contact Forn onload function*/[http://www.3dpower.in/js/sample.js]
  • /*Quick Contact slide bar function*/[http://www.3dpower.in/js/sample.js]
  • /*Gallery Slider Function [All services page]*/[http://www.3dpower.in/js/sample.js]
  • /*function getsection() { if ($("#section").hasClass("got") == false) { $.ajax({ url: "<?php echo SITEROOT ?>index.php/threedpower/homesection/", type: "GET", data: {}, contentType: false, cache: false, processData: false, success: function (data) { $("#section").append(data); $("#app2").append($("#app3").html()); $("#app3").remove(); $("#app2").css("display", "block");// $("#app").append($("#app2").html());// $.getScript("<?php // echo SITEROOT ?>js/owl.js"); } }); }}$(document).scroll(function () { getsection(); $("#section").addClass("got");});*/[http://www.3dpower.in/js/sample.js]
  • /*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)* Licensed under the MIT License (LICENSE.txt).** Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.* Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.* Thanks to: Seamus Leahy for adding deltaX and deltaY** Version: 3.0.4** Requires: 1.2.2+*/[http://www.3dpower.in/js/jquery.mousewheel-3.0.4.pack.js]
  • /* Explosion rules - 80% of screen - going down - close to the mouse - 1% chance of random explosion */[http://www.3dpower.in/js/jquery.fireworks.js]
  • /* Copyright The Closure Library Authors. SPDX-License-Identifier: Apache-2.0 */[http://www.googleadservices.com/pagead/conversion.js]
Enabled Debugging
The JavaScript debugging functions should always removed after development stage, because they could expose informations on the inner workings of the code. In production, it is a loophole and could show a possible attacker where to find possibly exploitable vulnerabilities or interesting variables.
  • console.log("Embedding this video is restricted by Youtube."), d.isPlayList && b(d).playNext()), 2 == t.data && d.isPlayList && b(d).playNext(), "function" == typeof d.opt.onError && d.opt.onError(e, t)}}}))}))})}})}, getDataFromFeed:function(t, e){e.videoID = t, b.browser.msie?("auto" == e.opt.ratio?e.opt.ratio = "16/9":e.opt.ratio, e.hasData || (e.hasData = !0, setTimeout(function(){b(e).trigger("YTPChanged")}, 100))):(b.getJSON(b.mbYTPlayer.locationProtocol + "//gdata.youtube.com/feeds/api/videos/" + t + "?v=2&alt=jsonc", function(t){e.dataReceived = !0, t = t.data, e.title = t.title, e.videoData = t, "auto" == e.opt.ratio && (e.opt.ratio = t.aspectRatio && "widescreen" === t.aspectRatio?"16/9":"4/3"), !e.hasData && (e.hasData = !0, e.isPlayer) && e.opt.containment.css({background:"rgba(0,0,0,0.5) url(" + e.videoData.thumbnail.hqDefault + ") center center", backgroundSize:"cover"}), b(e).trigger("YTPChanged")}), setTimeout(function(){e.dataReceived || e.hasData || (e.hasData = !0, b(e).trigger("YTPChanged"))}, 1500))}, getVideoID:function(){return this.get(0).videoID || !1}, setVideoQuality:function(t){var e = this.get(0);[http://www.3dpower.in/js/combinejs.js]
  • console.log("Animsition does not support this browser."), e.destroy.call(this))}, addOverlay:function(e){t(e.overlayParentElement).prepend('<div class="' + e.overlayClass + '"></div>')}, addLoading:function(e){t(e.loadingParentElement).append('<div class="' + e.loadingClass + '">' + e.loadingHtml + "</div>")}, removeLoading:function(){var e = t(this).data("animsition").options; t(e.loadingParentElement).children("." + e.loadingClass).fadeOut().remove()}, supportCheck:function(e){var i = t(this);[http://www.3dpower.in/js/combinejs.js]
  • console.log(e):window.opera && window.opera.postError && window.opera.postError(e)}}var o, s; o = void 0 !== t("<input type='file'/>").get(0).files, s = void 0 !== window.FormData; var r = !!t.fn.prop; t.fn.attr2 = function(){if (!r)return this.attr.apply(this, arguments);[http://www.3dpower.in/js/combinejs.js]
  • console.log(1 === Array.prototype.slice.call(arguments).length && "string" == typeof Array.prototype.slice.call(arguments)[0]?Array.prototype.slice.call(arguments).toString():Array.prototype.slice.call(arguments)):Function.prototype.bind || "undefined" == typeof console || "object" != typeof console.log || Function.prototype.call.call(console.log, console, Array.prototype.slice.call(arguments)))}, _determinepath:function(t){var e = this.options; if (e.behavior && this["_determinepath_" + e.behavior] !== i)return this["_determinepath_" + e.behavior].call(this, t);[http://www.3dpower.in/js/combinejs.js]
  • console.log("Exception occurred when checking element " + e.id + ", check the '" + o.method + "' method.", c), c}}return a?void 0:(this.objectLength(s) && this.successList.push(e), !0)}, customDataMessage:function(e, i){return t(e).data("msg" + i.charAt(0).toUpperCase() + i.substring(1).toLowerCase()) || t(e).data("msg")}, customMessage:function(t, e){var i = this.settings.messages[t]; return i && (i.constructor === String?i:i[e])}, findDefined:function(){for (var t = 0; t < arguments.length; t++)if (void 0 !== arguments[t])return arguments[t]}, defaultMessage:function(e, i){return this.findDefined(this.customMessage(e.name, i), this.customDataMessage(e, i), !this.settings.ignoreTitle && e.title || void 0, t.validator.messages[i], "<strong>Warning: No message defined for " + e.name + "</strong>")}, formatAndAdd:function(e, i){var n = this.defaultMessage(e, i.method), o = /\$?\{(\d+)\}/g; "function" == typeof n?n = n.call(this, i.parameters, e):o.test(n) && (n = t.validator.format(n.replace(o, "{$1}"), i.parameters)), this.errorList.push({message:n, element:e, method:i.method}), this.errorMap[e.name] = n, this.submitted[e.name] = n}, addWrapper:function(t){return this.settings.wrapper && (t = t.add(t.parent(this.settings.wrapper))), t}, defaultShowErrors:function(){var t, e; for (t = 0; this.errorList[t]; t++)e = this.errorList[t], this.settings.highlight && this.settings.highlight.call(this, e.element, this.settings.errorClass, this.settings.validClass), this.showLabel(e.element, e.message);[http://www.3dpower.in/js/combinejs.js]
  • console.log("Document Loaded !");[http://www.3dpower.in/js/sample.js]
  • console.log("Form Submision 2");[http://www.3dpower.in/js/sample.js]
Unsafe Functions
eval() is eval! This functions and similar ones (document.write(), document.writeln(), element.innerHTML, element.outerHTML, element.insertAdjacentHTML()) should never be used in production stage of a website, because the parsing of the executable string is often not secure and result therefore often in a cross-site scripting vulnerability. Instead of these functions create html elements by script and add it to the DOM object.
  • document.write("<span style='font-size: 14px; color: red; font-family: sans-serif;'>OneSignal: This page cannot be directly opened, and must be opened as a result of a subscription call.</span>"),[2,Promise.resolve()]):((e=i({},this.options)).appId=e.appId,e.subdomainName=e.subdomain,e.origin=e.origin,OneSignal.config=e||{},[4,(new c.default).getAppConfig(e)]);[http://www.3dpower.in/js/OneSignalSDK.js]
  • insertAdjacentHTML(t,n);[http://www.3dpower.in/js/OneSignalSDK.js]
  • insertAdjacentHTML(t,n)}},t.clearDomElementChildren=function(e){if("string"==typeof e)for(var t=document.querySelector(e);[http://www.3dpower.in/js/OneSignalSDK.js]
  • eval("(" + e.data("property") + ")"):e.data("property");[http://www.3dpower.in/js/combinejs.js]
  • eval(d.opt.gaTrack) && _gaq.push(["_trackEvent", "YTPlayer", "Play", d.title || d.videoID.toString()]), "undefined" != typeof ga && eval(d.opt.gaTrack) && ga("send", "event", "YTPlayer", "play", d.title || d.videoID.toString())}2 == a && d.state != a && (d.state = a, c.find(".mb_YTVPPlaypause").html(b.mbYTPlayer.controls.play), b(d).trigger("YTPPause"))}}, onPlaybackQualityChange:function(){"function" == typeof d.opt.onPlaybackQualityChange && d.opt.onPlaybackQualityChange(e)}, onError:function(t){150 == t.data && (console.log("Embedding this video is restricted by Youtube."), d.isPlayList && b(d).playNext()), 2 == t.data && d.isPlayList && b(d).playNext(), "function" == typeof d.opt.onError && d.opt.onError(e, t)}}}))}))})}})}, getDataFromFeed:function(t, e){e.videoID = t, b.browser.msie?("auto" == e.opt.ratio?e.opt.ratio = "16/9":e.opt.ratio, e.hasData || (e.hasData = !0, setTimeout(function(){b(e).trigger("YTPChanged")}, 100))):(b.getJSON(b.mbYTPlayer.locationProtocol + "//gdata.youtube.com/feeds/api/videos/" + t + "?v=2&alt=jsonc", function(t){e.dataReceived = !0, t = t.data, e.title = t.title, e.videoData = t, "auto" == e.opt.ratio && (e.opt.ratio = t.aspectRatio && "widescreen" === t.aspectRatio?"16/9":"4/3"), !e.hasData && (e.hasData = !0, e.isPlayer) && e.opt.containment.css({background:"rgba(0,0,0,0.5) url(" + e.videoData.thumbnail.hqDefault + ") center center", backgroundSize:"cover"}), b(e).trigger("YTPChanged")}), setTimeout(function(){e.dataReceived || e.hasData || (e.hasData = !0, b(e).trigger("YTPChanged"))}, 1500))}, getVideoID:function(){return this.get(0).videoID || !1}, setVideoQuality:function(t){var e = this.get(0);[http://www.3dpower.in/js/combinejs.js]
  • eval(a);[http://www.3dpower.in/js/combinejs.js]
  • eval(a.opt.realfullscreen) && !a.isBackground) && e.append(y), d.append(e).append(w), a.isBackground?b("body").after(d):(d.addClass("inlinePlayer"), a.wrapper.before(d)), d.fadeIn()}}, checkForState:function(t){var e = t.opt.showControls?10:1e3; clearInterval(t.getState), t.getState = setInterval(function(){var e = b(t).manageYTPProgress(), i = b(t), n = b("#controlBar_" + t.id), o = t.opt, s = t.opt.startAt?t.opt.startAt:1, r = t.opt.stopAt > t.opt.startAt?t.opt.stopAt:0; if (r = r < t.player.getDuration()?r:0, 0 == t.player.getVolume()?i.addClass("isMuted"):i.removeClass("isMuted"), t.opt.showControls && n.find(".mb_YTVPTime").html(e.totalTime?b.mbYTPlayer.formatTime(e.currentTime) + " / " + b.mbYTPlayer.formatTime(e.totalTime):"-- : -- / -- : --"), document.hasFocus()?document.hasFocus() && !t.hasFocus && (t.hasFocus = !0, i.playYTP()):(t.hasFocus = !1, i.pauseYTP()), 1 == t.player.getPlayerState() && (parseFloat(t.player.getDuration() - 3) < t.player.getCurrentTime() || r > 0 && parseFloat(t.player.getCurrentTime()) > r) && !t.isEnded){if (t.isEnded = !0, setTimeout(function(){t.isEnded = !1}, 2e3), t.isPlayList)return clearInterval(t.getState), void b(t).trigger("YTPEnd");[http://www.3dpower.in/js/combinejs.js]
  • eval(d))}return a} catch (k){return{}}}, _getInst:function(t){return b(t).data(this.name) || {}}, option:function(t, e, i){t = b(t);[http://www.3dpower.in/js/combinejs.js]
  • eval("(" + t + ")")}, A = function(e, i, n){var o = e.getResponseHeader("content-type") || "", s = "xml" === i || !i && 0 <= o.indexOf("xml");[http://www.3dpower.in/js/combinejs.js]
Additional Information
Link Opener
The window.open("https://example.com/", "_blanc", "noopener"); attribute should always be added to the window.open() function, which open a site in a new tab, to reduce the risk of reverse tabnabbing. Otherwise javascript on the new page has full control over the previous visited page, including permission to change the DOM object and possibly steal session cookies.
Link Referrer
The window.open("https://example.com/", "_blanc", "referrer"); attribute should always be added to the window.open() function to prevent reverse tabnabbing for older browser, which do not support the noopener attribute and to prevent phishing attacks.
Comments
Comments should be removed from the public code of a web application, since it can give an aggressor critical insights into the inner structure of the program. By using this information, the attacker could easier understand how the user session is handled by javascript or figure out the pathway data is sent to the server.
Enabled Debugging
The JavaScript debugging functions should always removed after development stage, because they could expose informations on the inner workings of the code. In production, it is a loophole and could show a possible attacker where to find possibly exploitable vulnerabilities or interesting variables.
Unsafe Functions
eval() is eval! This functions and similar ones (document.write(), document.writeln(), element.innerHTML, element.outerHTML, element.insertAdjacentHTML()) should never be used in production stage of a website, because the parsing of the executable string is often not secure and result therefore often in a cross-site scripting vulnerability. Instead of these functions create html elements by script and add it to the DOM object.
Scanned URL(s)
3D Rendering | 3D Architectural Rendering | 3D Visualization Company | 3D Power