Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
@monster_property_services/monster-contact-form
Advanced tools
This web component is a default form for contacting a business. The contact logic should be handled by the user.
This web component is a default form for contacting a business. The contact logic must be handled by the user.
You can start using this component right away like this:
<script type="module" src="https://unpkg.com/@monster_property_services/monster-contact-form@1.0.8"></script>
npm i @monster_property_services/monster-contact-form
The contact form have a required input called successfulSubmit
in which the user can control the state of the form.
like this:
sending: 'the user is filling out the form'
success: 'the form was sent successfully'
fail: 'the form submission failed'
By default (initially) you have to set the successfulSubmit
to sending
.
<monster-contact-form successfulSubmit="sending"></monster-contact-form>
You can handle the data submitted with the event name form-submit
and then set the submit property like this.
<monster-contact-form></monster-contact-form>
<script>
const formElement = document.querySelector('monster-contact-form');
formElement.addEventListener('form-submit', (event) => {
console.log(event.detail); // Your form data
// Your api implementation goes here
if(success) {
formElement.setAttribute('successfulSubmit', 'success');
} else {
formElement.setAttribute('successfulSubmit', 'fail');
}
});
</script>
If the form is been correctly submitted you should get an object like this
{
"name": "John Doe",
"email": "john.doe@mail.com",
"subject": "Test",
"message": "Test message"
}
You can use your own google reCaptcha implementation like this:
hasCaptcha
with a true
string value.
Moreover, you'll have to render the captcha element as a child of monster-contact-form
.<monster-contact-form hasCaptcha="true">
<div id="html_element" style="margin: 0 auto"></div>
</monster-contact-form>
<script>
var onloadCallback = function() {
grecaptcha.render('html_element', {
'sitekey' : 'your-site-key',
});
};
const formElement = document.querySelector('monster-contact-form');
formElement.addEventListener('form-submit', (event) => {
console.log(event.detail);
});
</script>
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
{
"form": {
"name": "sdf",
"email": "sdf@sdf.sdf",
"subject": "sdf",
"message": "dsf"
},
"captcha": 'your-recaptcha-token-response or null in case there is no recaptcha'
}
Here an example of a full implementation with captcha and feedback control:
<body style="font-family: Oswald;">
<monster-contact-form successfulSubmit="sending" hasCaptcha="true">
<div id="html_element" style="margin: 0 auto"></div>
</monster-contact-form>
</body>
<script>
var onloadCallback = function() {
grecaptcha.render('html_element', {
'sitekey' : 'your_captcha_key',
});
};
const formElement = document.querySelector('monster-contact-form');
formElement.addEventListener('form-submit', (event) => {
grecaptcha.reset();
const {name, email, message} = event.detail;
fetch("your_api_url", {
method: 'POST',
body: {
FullName: name,
Email: email,
Message: message
},
headers: {
'Authorization': `Bearer your_api_token`,
'Content-Type': 'application/json'
}
})
.then((response) => {
const objectResponse = response.json();
if(!response.ok) {
throw new Error('Request failed');
}
formElement.setAttribute('successfulSubmit', 'success');
})
.catch(error => {
formElement.setAttribute('successfulSubmit', 'fail');
});
});
</script>
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
There's an example of this in here https://codepen.io/Andres2D/pen/RwmKoXb
FAQs
This web component is a default form for contacting a business. The contact logic should be handled by the user.
The npm package @monster_property_services/monster-contact-form receives a total of 21 weekly downloads. As such, @monster_property_services/monster-contact-form popularity was classified as not popular.
We found that @monster_property_services/monster-contact-form demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers 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
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.