
Research
/Security News
Critical Vulnerability in NestJS Devtools: Localhost RCE via Sandbox Escape
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
react-rxinput
Advanced tools
react-rxinput React component, extends element to validate against a regular expression as you type input (incremental regex matcher)
incr-regex-package react-bootstrap React
JavaScript regular expression is great and really fast, and it would be pointless to try to create a RegExp alternative that does the same thing. But having said that, this project is a specific use case - validating input as you type using RegExp.
I needed a regular expression matcher that would work incrementally; By that I mean that it should let you know if a string matches the beginning part of a regular expression (good so far, but needs more input scenario). I tried to figure out if that was possible using JavaScript's regular expression matcher. I could not figure out any easy to do that. I decided that I would write an incremental regular expression matcher. I was much more difficult that I expected. But I have build an npm package that does perform incremental regular expression matching.
The widget was inspired by another github project (https://github.com/insin/react-maskinput) that provides mask input for things like phone number, credit card number, date and so on. Although the capability is very nice, but it was limited. THe input mask you could enter has very little flexibility, wile a regular expression has all the flexibility you could need (even regexp has its limitations, cannot match recursive patterns, but that is for another day).
Building the widget it became obvious that it could be a swiss army knife and provide:
npm install react-rxinput --save
git:
git clone https://github.com/nurulc/react-rxinput.git
cd react-rxinput
npm install
npm start
The commands above will start the demo application point youy browser at http://localhost:3000
How to use the component:
RxInput*
properties:
const App = React.createClass({
getInitialState() {
return {
color: "",
}
},
_onChange(e) {
const stateChange = {}
stateChange[e.target.name] = e.target.value
this.setState(stateChange)
},
_createHeader() {
return (
<div>
<h1>
Demo of Rx Masked Input
</h1>
<p></p>
<p className="lead">
A React component which creates a masked using
<a href="https://github.com/nurulc/incr-regex-package">incremental regular expression matching</a>
to validate input as you type
<code><RxInput/></code>
</p>
</div>
);
},
render() {
// Color: <scome colors> | Email: <email> | Phone: <phone number>
const color = /Color: (Red|Gr(een|ay)|Blue|Yellow|O(range|live))|Email: [a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+|(Phone: (\\+\\d{1,3} )?\\(\\d{3}\\)-\\d{3}-\\d{4}( Ext: \\d+)?)/;
return (
<div className="App">
{this._createHeader() }
<div>
<div className="form-field">
<label htmlFor="color">Color:</label>
<RxInput name="color" id="color" size="40"
mask={color}
value={this.state.color}
popover="yes"
placeholder="Color: <scome colors> | Email: <email> | Phone: <phone number>"
selection={{start:0,stop:0}}
onChange={this._onChange}/>
</div>
</div>
</div>
)
}
});
render(<App name="test"/>, document.querySelector('#demo'));
Documentation to come
FAQs
react-rxinput React extends input element to validate against a regular expression as you type input (incremental regex matcher)
We found that react-rxinput demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
Product
Customize license detection with Socket’s new license overlays: gain control, reduce noise, and handle edge cases with precision.
Product
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.