Git Product home page Git Product logo

Comments (5)

Anthodpnt avatar Anthodpnt commented on August 10, 2024 2

Dear @wassim,

Because of the danger of evaluating malicious code we can't allow a method to evaluate scripts in the core of Highway and we don't want to take responsibility of potential issues related to that. This means that for now the code evaluation will have to be done by yourself in the renderers of pages containing this kind of inline scripts within the onEnter method for example.

Here is a code sample that should do the work but be careful about the code you are evaluating:

onEnter() {
  const scripts = this.view.querySelectorAll('script');

  for (const script of scripts) {
    const code = script.innerText;

    if (code.length !== 0) {
      Function(code)();
    }
  }
}

You can read more about danger of evaluating code in the documentation about the eval method.

If you know a better and more secure way for evaluating inline scripts don't hesitate to tell us, we will be happy to implement this kind of behavior in the core of Highway if we are sure it's harmless for end-users.

Best regards,
Anthony

from highway.

Anthodpnt avatar Anthodpnt commented on August 10, 2024 1

@wassim Indeed we'll have to evaluate all scripts within the router-view HTML on navigation. We will look at it ASAP but for now you can use events and access the To renderer and the router-view and evaluate scripts by yourself.

from highway.

Anthodpnt avatar Anthodpnt commented on August 10, 2024

Why do you need script tags within the view ?
They should either be before the close body tag or in the head...

So I would say that yes this is done on purpose but maybe you have some good reasons.

from highway.

wassim avatar wassim commented on August 10, 2024

@Anthodpnt I'm using WordPress with Gravity Forms. The plugin is adding inline javascript next to forms. There is many plugins that do this sort of things.

from highway.

Brendan1983 avatar Brendan1983 commented on August 10, 2024

Hi @wassim, did you end up finding a secure solution to this issue? Trying to implement Gravity Forms with Highway and am curious how you solved this.

from highway.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.