Comments (11)
I have the same issue. If I use ->with($data) instead, it seems to work properly.
from inertia-laravel.
Yeah sorry folks, I had fixed this serious security bug back in June. See d09e6b1. Are you on the latest version of inertia-laravel?
The whole issue here was my using is_callable
instead of checking if it was a closure.
Before:
array_walk_recursive($props, function (&$prop) {
if (is_callable($prop)) {
$prop = App::call($prop);
}
});
After:
array_walk_recursive($props, function (&$prop) {
if ($prop instanceof Closure) {
$prop = App::call($prop);
}
});
Make sure you get on the latest version of inertia-laravel, and you'll be good.
from inertia-laravel.
I think the purpose might be to have lazy props (props that are only resolved when they're actually needed)?
Either way this is a pretty big security concern, for example a user entering phpinfo
as a value somewhere that'll be passed back to the Inertia component, will actually execute phpinfo()
!
from inertia-laravel.
All good. When it comes to security bugs, commotion is required.
Also, thanks @scottzirkel, you obviously found this in May already, thanks for reporting.
from inertia-laravel.
Having same issue. As a test, try and update a user's name to "dump." It will try to invoke the dump().
from inertia-laravel.
Yeah, any string that is callable will error out. Obviously this is not going to work since we're dealing with user provided data.
I checked in the PingCRM app, and it errors out there too. Was thinking I was doing something wrong. I'm not sure why the props are being called recursively like that, but everything works smooth with that commented out.
from inertia-laravel.
Funny, I did the same thing, I checked PingCRM to see if the mistake was on my end.
What do you think about using a specific key name, for all user input, that skips the recursive calls? I'm just worried about removing it completely in case the creator has some purpose for it that I don't know about.
from inertia-laravel.
Oh I have no doubt it serves a purpose, I just haven't sorted out what that is yet. I've had it commented out locally and have yet to see an error from it.
I feel like it should be the opposite, specify a key name for what should be called? Not sure. Without knowing it's true purpose, I'm kind of at a loss.
from inertia-laravel.
Sure enough, I hadn't refactored that. Thanks @Resin01!
from inertia-laravel.
For example, given the right circumstances you can get phpinfo
to execute:
from inertia-laravel.
My bad, composer dependencies were indeed locked on a certain commit π So sorry for the unnecessary commotion
from inertia-laravel.
Related Issues (20)
- Data management on the Client Side
- Show toast or message after request complete. HOT 2
- Cant get validation working on laravel-inertia-vue HOT 2
- Login not working with Laravel + Inertia + React HOT 1
- problem in running ssr when using vue vite and ziggy
- Add dinamic parameters to Inertia::lazyLoad props HOT 1
- SSR with Dynamically Shared Props HOT 1
- Providing empty object to the view
- Add config option to ignore paths with SSR server HOT 1
- Progress bar not working on route navigation HOT 1
- Laravel / Vue 3 Install Issues HOT 1
- Inertia with Laravel + SSR + pm2 HOT 1
- Laravel Inertia Form Validation Issue
- Safari can not handle redirect()->back() HOT 1
- Router events runs multiple times. HOT 5
- JSON response error on subdomains - Firefox HOT 1
- Inertia with supervisor SSR error HOT 1
- SSR (react) error ui doesn't match initial ui when including prop having html
- β¨Feature Request: Support `ziggy` 2.0 HOT 4
- fails testing nested pros
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from inertia-laravel.