Brute force beveiliging

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

3D BIM Add-on Developer

Als 3D BIM add- on ontwikkelaar bij KUBUS ontwikkel je add-ons (BCF Managers genaamd) voor de toonaangevende building information modeling (BIM) programma's Revit, Navisworks, Archicad, AutoCAD en Tekla Structures. BCF Managers maken gegevensoverdracht mogelijk tussen BIM-software en BIMcollab. Je werkt zowel aan de front- als aan de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en

Bekijk vacature »

.NET Software Developer

Dit ga je doen Als .NET Software Developer zul jij je voornamelijk bezig houden met: Het van scratch af aan bouwen van applicaties (.NET, C#, Bootstrap, KnockoutJs en WebAPI2); Het testen van jouw code d.m.v. het uitvoeren van unittesten; Het oplossen van bugs in de code; Het onderhouden van contact met collega's betreffende de door jouw ontwikkelde applicaties; Het verbeteren en doorontwikkelen van maatwerkapplicaties. Hier ga je werken Jij gaat aan de slag als .NET Software Developer en gaat je focussen op het bedenken, ontwikkelen en testen van maatwerkapplicaties in voornamelijk C#. Dit ga je doen bij een grote, internationale

Bekijk vacature »

Gezocht: .Net ontwikkelaars met een maatschappelij

Bedrijfsomschrijving Zoek jij als medior .Net ontwikkelaar een inspirerende werkplek bij een bedrijf met maatschappelijk verantwoordelijkheidsgevoel? Dan is deze vacature je op het lijf geschreven. De organisatie bestaat ruim 20 jaar en ze ontwikkelen in house applicaties waarmee de zorgsector enorm mee gebaat is. Jouw applicaties worden gebruikt door duizenden gebruikers waardoor je echt een waardevolle bijdrage kan leveren aan de maatschappij. Het bedrijf is zeer innovatief en vindt een goede werk/privé balans belangrijk. Je krijgt alle mogelijkheden om jezelf verder te ontwikkelen, je werktijden in te delen en daarnaast is het ook mogelijk om deels thuis te werken. Het

Bekijk vacature »

Java developer Zorgsysteem

Dit ga je doen Werken aan het eigen gebouwde zorgsysteem; Verbeteringen maken en toepassen binnen de applicatie; Jij gaat werken aan de Back-end van de applicatie en sporadisch werk je mee aan de Front-end; Samenwerken met andere teams voor een optimaal resultaat; Jij kan 'clean' werken en high quality code schrijven; Jij werkt resultaatgericht. Hier ga je werken De organisatie houdt zich bezig met diverse applicaties met betrekking tot zorgregistratie. Dankzij hun systeem komt alle informatie, omtrent de zorg van een patiënt, op een overzichtelijke en toegankelijke manier samen in één systeem te staan. Op deze manier is deze informatie

Bekijk vacature »

Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12946 Introductie We are looking for a Java Developer! Our client is one of the most innovation companies located within the Netherlands. We provide high quality software in a high-tech and challenging market. Functieomschrijving The department is specialized in creating and developing high quality software for manufacturing automation in a high tech environment. We strive to provide our clients with high quality software and deliver state of the art solutions in a variety of ways. Creating software infrastructure using Java SE / EE Create applications to fine tune manufacturing processes

Bekijk vacature »

Low-Code Expert/Developer: Power Platform Speciali

Bedrijfsomschrijving Als Low-Code Expert/Developer bij ons innovatieve bedrijf, neem je een cruciale rol op je in de creatie, ondersteuning en implementatie van diverse oplossingen met behulp van het veelzijdige Power Platform. Dit platform omvat Power Apps, Power BI, Power Automate, Power Virtual Agent en Azure Logic Apps. Het Power Platform biedt je de mogelijkheid om klanten te voorzien van naadloze integraties door op maat gemaakte oplossingen te creëren die compatibel zijn met (bijna) alle bestaande software-infrastructuren. Dankzij het uitgebreide scala aan toepassingen, krijg je de kans om als architect en projectleider van je eigen oplossing te fungeren. Dompel jezelf onder

Bekijk vacature »

Magento2 Developer

Functie Ben jij een ontwikkelaar en wil jij een volgende stap zetten en als teamlead aan de slag? Lees dan snel verder! Voor een gewilde opdrachtgever in omgeving Delft zijn wij op zoek naar een programmeur die als meewerkend voorman aan de slag wilt gaan. Een developer die een team van twee man aan zal sturen. Jouw werkzaamheden zullen er als volgt uitzien; Ontwikkelen en ontwerpen van API's; Maatwerkoplossingen; Databeveiliging; Optimalisatie webshops; Ontwikkelen technische implementaties voor verbetering database; Aanspreekpunt voor de organisatie en verantwoordelijk voor de aansturing van externe developers. Zoek je veel uitdaging en veelzijdigheid in je werk dan

Bekijk vacature »

C#.NET Developer

Functieomschrijving We are looking for a dutch native speaker In deze uitdagende functie ga je werken als onderdeel van het development team, in de functie van C#.NET Developer, Je gaat maatwerk software bouwen voor diverse klanten. Ook optimaliseer je bestaande software en bouw je API koppelingen. Je bent vooral met back-end development bezig. Je krijgt veel vrijheid in deze functie en je krijgt de kans om mee te denken in bedrijfsprocessen. Deels thuiswerken is geen enkel probleem! Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Het is van oorsprong een familiebedrijf, die gestart zijn met het bouwen van

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe stap? Voor een softwarebedrijf in regio Oosterhout zijn wij op zoek naar een back-end developer met kennis of ervaring met C# en SQL. Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je brengt de aanpassingssuggesties van klanten in kaart, om ze vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Lead Front-end developer

Functie Hun huidige applicatie worden ontwikkeld in o.a. React, Redux, TypeScript. Ze werken graag met de nieuwste technieken en tooling en zoeken ook developers die hier proactief op zoek naar gaan. Als senior/lead developer ben je een kartrekker in het team. Naast het meedenken over bijvoorbeeld de architectuur of toepassing van nieuwe technieken krijg je ook veel tijd om de meer junior (front-end) developers te begeleiden. Zo kun je bijvoorbeeld 1 dag in de week met 2 collega’s bezig zijn om samen met hen te kijken naar hun ontwikkeling, doelstellingen en uiteraard de gewenste begeleiding hierin. Hiernaast sta je als

Bekijk vacature »

Junior PHP Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET developer start jij in een development team met twee ervaren software ontwikkelaars. Jouw persoonlijke ontwikkeling is voor ons erg belangrijk en jij gaat dan ook meelopen met onze Senior .NET ontwikkelaar die jou met zijn kennis en ervaring een goede begeleiding kan aanbieden. Als team zijn jullie verantwoordelijk voor het schrijven van software voor onze toonaangevende Automatiseringssystemen. Jij gaat aan de slag met de onderhoud van de kernsoftware, ondersteund de software van derden door het gebruik van onze webservices en als team zijn jullie verantwoordelijk voor het ontwikkelen van onze backend oplossingen. Wij maken op dit

Bekijk vacature »

PHP Software Developer

Functie omschrijving PHP Software Developer gezocht! Voor een organisatie in de regio Zeist die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in een scrumteam aan de ontwikkeling van een medicatiebewakingssysteem; Meedenken over de mogelijkheden en onmogelijkheden van projecten;

Bekijk vacature »

Functioneel Applicatiebeheerder

Wij van CNB zijn op zoek naar een leergierige Functioneel Applicatiebeheerder CNB is de grootste dienstverlener in de markt van bloembollen en vaste planten. In deze markt verricht CNB de volgende diensten: bemiddeling, veilen en het koelen en prepareren van bloembollen. Vanuit ons hoofdkantoor in Lisse werken bijna 100 collega’s dag in dag uit aan de bemiddeling van bloembollen. In Bovenkarspel vindt het koelen en prepareren van de bloembollen plaats. Wij zijn op zoek naar een enthousiaste Functioneel Applicatiebeheerder die naast een applicatie, ook sfeer kan bouwen! Jij: Vindt het leuk om binnen een klein IT-team aan de slag te

Bekijk vacature »

Junior PHP (Laravel) Developer

Functie omschrijving Wij zijn op zoek naar een PHP Laravel Developer! Sta je aan het begin van je carrière en ben je op zoek naar een leuke baan? Lees dan verder! Voor een softwarebedrijf in omgeving van Schiphol zijn wij op zoek naar een ervaren PHP (Laravel) Developer. Je gaat je bezighouden met het ontwikkelen van innovatieve bedrijfsapplicaties. Samen met het team, bestaande uit designers en developers, maak je mooie oplossingen voor bedrijven in diverse branches. Je zorgt dat de opgeleverde websites perfect werken en de klant meer dan tevreden is. Je kunt rekenen op een afwisselende baan met leuke

Bekijk vacature »
Jan terhuijzen

jan terhuijzen

21/05/2015 18:11:39
Quote Anchor link
Hallo,

Ik wil mijn login beveiligen tegen brute force.
Het volgende plan heb ik gemaakt. Het gaat om een login met emailadres en wachtwoord.

- Login pogingen die mislukken bijhouden: timestamp, ip, email, hashed wachtwoord

Bij het laden van de login pagina, kijken in de lijst of er bij dit IP veel mislukte pogingen zijn gedaan het afgelopen uur.
- Te veel foute pogingen ---> captcha laten zien.
- IP komt niet voor in de lijst / nog weinig mislukte pogingen --> Normaal login formulier zonder captcha.

Bij het inloggen (verwerking van login)
- Kijken of er met het ingevulde emailadres veel mislukte pogingen zijn gedaan, onafhankelijk van alle andere gegevens, dus ook als met een ander IP met dit (eventueel foute) emailadres veel mislukte pogingen waren. (het afgelopen uur)
- Te veel foute pogingen met dit emailadres --> NIET zeggen of login is gelukt/mislukt. Maar een captcha vragen (apart, in een nieuwe request/response). Als captcha goed is, dan pas informatie geven of login goed/fout was.
Het geven van deze informatie is gevoelig. De foutmelding, zelfs de hele response data, moet precies hetzelfde zijn bij een foutmelding na het invullen van de captcha. Anders weet een geautomatiseerd programma al dat de login fout was en dan hoeft de captcha niet meer te worden opgelost om er achter te komen of de login juist was. Er mag dus geen verschil zijn tussen een gewone login foutmelding en een foutmelding die wordt gegeven na het invullen van de captcha bij brute force. Ik hoop dat jullie begrijpen wat ik bedoel.

Dezelfde soort controle als bij de emailadressen, geldt ook voor wachtwoorden.

Het enige wat mijn idee eigenlijk is, is bepalen of er wel of geen captcha bij de login hoort.

Is dit een goede aanpak?

Toevoeging op 21/05/2015 18:33:35:

Hier is het stappenplan nog wat beter uitgelegd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Page of login form

Start:

- Captcha in forumulier zetten? ja / nee

Login verwerking

Stap 1:

---- IP heeft te veel foute pogingen het afgelopen uur?
---- Ja --> controle op captcha invoer
---- Nee --> Stap 2

Stap 2:

---- Email heeft te veel foute pogingen het afgelopen uur?
---- Ja --> Ga naar tussenstap
---- Nee --> Stap 3

Stap 3:

---- Wachtwoord heeft te veel foute pogingen het afgelopen uur?
---- Ja --> Ga naar tussenstap
---- Nee --> Login OK, normale controle op email/wachtwoord en inloggen
------------ Bij foute login mislukte poging toevoegen aan lijst.

Tussenstap, als brute force is geconstateerd:

---- Sessie maken of een andere manier gebruiken om aan te geven dat net het login formulier is verzonden. (Denk aan zoiets als multi-page formulieren)
---- Formulier met captcha
---- Captcha juist --> informatie geven (juist/niet juiste login) of inloggen.
---- Captcha fout --> Terug naar Start, verwijder sessie, mislukte poging toevoegen aan lijst.
Gewijzigd op 21/05/2015 18:18:42 door Jan terhuijzen
 
PHP hulp

PHP hulp

25/04/2024 02:11:32
 
Johan de wit

johan de wit

21/05/2015 18:55:55
Quote Anchor link
Ik wil het ook wel weten voor mij login pagina. :)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

21/05/2015 19:10:51
Quote Anchor link
Stel er is een bedrijf met 100 kantoormedewerkers. Ze hebben allemaal toegang tot internet middels hetzelfde ip adres. (het bedrijf heeft een eigen domein). Nu komen ze allemaal op jouw website. Echter is er één van de honderd die probeert het wachtwoord van zijn collega's te achterhalen. Hij gebruikt brute-force methodes. na x keer ban jij nu het ip-adres. Het hele bedrijf is nu buitengesloten van jouw website :p
 
Johan de wit

johan de wit

21/05/2015 19:15:42
Quote Anchor link
Er is ook een uitzondering toch? Bijvoorbeeld 3 IP`S krijgen toegang en buiten dat wordt allemaal geblokkeerd.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

21/05/2015 19:36:51
Quote Anchor link
Het enige waar je mij inziens iets mee zou kunnen is het volgende:

er wordt ingelogd met een combinatie van een mailadres en een wachtwoord.

Tel het aantal mislukte inlogpogingen per mailadres. Is er binnen een uur bijv. vijf keer geprobeerd in te loggen onder hetzelfde mailadres maar telkens met een foutief wachtwoord dan blokkeer je alleen dat account voor een uur. Je stuurt hiervan een mail naar het mailadres.

Alle andere dingen hebben geen zin of zorgen voor onterecht buitengesloten gebruikers.

Wat wel helpt:
- minimale sterkte wachtwoorden aanhouden (bijv zes karakters minimaal 1 cijfer en een hoofdletter)
- geen/weinig info verstrekken aan de client over mislukte inlogpogingen of bans (laat een hacker maar in het ongewisse of hij nu geblokkeerd is of niet)
- XSRF voorkomen: http://www.sitepoint.com/preventing-cross-site-request-forgeries/
 
Thomas van den Heuvel

Thomas van den Heuvel

21/05/2015 19:55:02
Quote Anchor link
Frank Nietbelangrijk op 21/05/2015 19:10:51:
Stel er is een bedrijf met 100 kantoormedewerkers. Ze hebben allemaal toegang tot internet middels hetzelfde ip adres. (het bedrijf heeft een eigen domein). Nu komen ze allemaal op jouw website. Echter is er één van de honderd die probeert het wachtwoord van zijn collega's te achterhalen. Hij gebruikt brute-force methodes. na x keer ban jij nu het ip-adres. Het hele bedrijf is nu buitengesloten van jouw website :p

Je zou je dan ook kunnen afvragen of er niet verkeerd geautomatiseerd is. De site zou beter op een intranet kunnen staan dan wellicht.

Een check op IP is nog steeds best aardig, en als je bedrijfsnetwerk middels een vast IP op het internet zit, dan zou je deze natuurlijk kunnen whitelisten (geen limiet aan inlogpogingen).

Als security een issue is, dan neem ik aan dat de site alleen via HTTPS bereikbaar is? En na 3 loginpogingen van een non-whitelisted IP gewoon bannen voor een dag/week/whatever. Er mag volgens mij best waargenomen worden dat loginpogingen mislukken, dat hoef je toch niet onder stoelen of banken te steken? Gewoon zorgen dat alles gelogd wordt, je sterke wachtwoorden eist, en zorgt dat deze eens in de zoveel tijd veranderd worden.

Of je zou nog verder kunnen gaan en alleen logins accepteren van specifieke IP's.
 
Johan de wit

johan de wit

21/05/2015 20:02:28
Quote Anchor link
Frank Nietbelangrijk op 21/05/2015 19:10:51:
Of je zou nog verder kunnen gaan en alleen logins accepteren van specifieke IP's.


Wat ik bedoelde.
 
Jan terhuijzen

jan terhuijzen

21/05/2015 23:04:27
Quote Anchor link
Frank Nietbelangrijk op 21/05/2015 19:10:51:
Stel er is een bedrijf met 100 kantoormedewerkers. Ze hebben allemaal toegang tot internet middels hetzelfde ip adres. (het bedrijf heeft een eigen domein). Nu komen ze allemaal op jouw website. Echter is er één van de honderd die probeert het wachtwoord van zijn collega's te achterhalen. Hij gebruikt brute-force methodes. na x keer ban jij nu het ip-adres. Het hele bedrijf is nu buitengesloten van jouw website :p


Buiten gesloten is wel vervelend. Maar ik was eigenlijk alleen van plan om met een captcha controle de login te beveiligen tegen geautomatiseerd misbruik. Alhoewel een captcha ook niet (meer) ideaal is natuurlijk.
 
Paco de Wulp

Paco de Wulp

22/05/2015 00:08:21
Quote Anchor link
Je kan natuurlijk wel een ip-adres blokkeren, indien deze van een gebied afkomstig is die sowieso niks te zoeken heeft op je website.
Indien je een website hebt voor alleen de nederlandse markt, kan je natuurlijk ook in .htaccess-bestand verschillende reeksen van ip-adressen blokkeren.

Toevoeging op 22/05/2015 00:20:18:

Ik zoek nog een CAPTCHA PHP-script. Iemand ?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

22/05/2015 00:21:20
Quote Anchor link
Thomas van den Heuvel op 21/05/2015 19:55:02:
Je zou je dan ook kunnen afvragen of er niet verkeerd geautomatiseerd is. De site zou beter op een intranet kunnen staan dan wellicht.

Klopt maar het gaat om het idee

Thomas van den Heuvel op 21/05/2015 19:55:02:
Een check op IP is nog steeds best aardig, en als je bedrijfsnetwerk middels een vast IP op het internet zit, dan zou je deze natuurlijk kunnen whitelisten (geen limiet aan inlogpogingen).

Als security een issue is, dan neem ik aan dat de site alleen via HTTPS bereikbaar is? En na 3 loginpogingen van een non-whitelisted IP gewoon bannen voor een dag/week/whatever. Er mag volgens mij best waargenomen worden dat loginpogingen mislukken, dat hoef je toch niet onder stoelen of banken te steken? Gewoon zorgen dat alles gelogd wordt, je sterke wachtwoorden eist, en zorgt dat deze eens in de zoveel tijd veranderd worden.

Of je zou nog verder kunnen gaan en alleen logins accepteren van specifieke IP's.


- HTTPS miste nog in mijn rijtje :-)

Ik vind persoonlijk ip blokkeringen maar niks. Ook al is het een site die door een heel klein groepje gebruikers gebruikt wordt. Straks besluit je in de zomer van 2016 door Azië te gaan reizen (weet je nu nog niet) en dan kan je vanaf daar weer niet inloggen. Een beveiliging is tevens een belemmering helaas en dus bezint eer ge begint. Als enkel een vaste groep mensen mag inloggen dan kun je nog verificatie per SMS overwegen. (arduino boardje met GPRS shield does the trick) Je doet dan aan "two step verification".
 
Johan de wit

johan de wit

22/05/2015 11:48:43
Quote Anchor link
Paco de Wulp op 22/05/2015 00:08:21:
Je kan natuurlijk wel een ip-adres blokkeren, indien deze van een gebied afkomstig is die sowieso niks te zoeken heeft op je website.
Indien je een website hebt voor alleen de nederlandse markt, kan je natuurlijk ook in .htaccess-bestand verschillende reeksen van ip-adressen blokkeren.

Toevoeging op 22/05/2015 00:20:18:

Ik zoek nog een CAPTCHA PHP-script. Iemand ?

Hij kan nergens Nederlandse IP voor .htaccess vinden.


Toevoeging op 22/05/2015 11:50:04:

Paco de Wulp op 22/05/2015 00:08:21:
Je kan natuurlijk wel een ip-adres blokkeren, indien deze van een gebied afkomstig is die sowieso niks te zoeken heeft op je website.
Indien je een website hebt voor alleen de nederlandse markt, kan je natuurlijk ook in .htaccess-bestand verschillende reeksen van ip-adressen blokkeren.

Toevoeging op 22/05/2015 00:20:18:

Ik zoek nog een CAPTCHA PHP-script. Iemand ?

Je hebt reCAPTCHA maar dat is weer van Google.


Toevoeging op 22/05/2015 11:51:39:

Frank Nietbelangrijk op 22/05/2015 00:21:20:
Thomas van den Heuvel op 21/05/2015 19:55:02:
Je zou je dan ook kunnen afvragen of er niet verkeerd geautomatiseerd is. De site zou beter op een intranet kunnen staan dan wellicht.

Klopt maar het gaat om het idee

Thomas van den Heuvel op 21/05/2015 19:55:02:
Een check op IP is nog steeds best aardig, en als je bedrijfsnetwerk middels een vast IP op het internet zit, dan zou je deze natuurlijk kunnen whitelisten (geen limiet aan inlogpogingen).

Als security een issue is, dan neem ik aan dat de site alleen via HTTPS bereikbaar is? En na 3 loginpogingen van een non-whitelisted IP gewoon bannen voor een dag/week/whatever. Er mag volgens mij best waargenomen worden dat loginpogingen mislukken, dat hoef je toch niet onder stoelen of banken te steken? Gewoon zorgen dat alles gelogd wordt, je sterke wachtwoorden eist, en zorgt dat deze eens in de zoveel tijd veranderd worden.

Of je zou nog verder kunnen gaan en alleen logins accepteren van specifieke IP's.


- HTTPS miste nog in mijn rijtje :-)

Ik vind persoonlijk ip blokkeringen maar niks. Ook al is het een site die door een heel klein groepje gebruikers gebruikt wordt. Straks besluit je in de zomer van 2016 door Azië te gaan reizen (weet je nu nog niet) en dan kan je vanaf daar weer niet inloggen. Een beveiliging is tevens een belemmering helaas en dus bezint eer ge begint. Als enkel een vaste groep mensen mag inloggen dan kun je nog verificatie per SMS overwegen. (arduino boardje met GPRS shield does the trick) Je doet dan aan "two step verification".


Dadelijk krijg een nieuwe vraag zoals hoe kan je SMS versturen of two step verification.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.