Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: Slightly OT: Java in the DB
Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C3FAE9.75FE7786"
------_=_NextPart_001_01C3FAE9.75FE7786
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
No...each user has to enter their own old password into a
field on the web form, then enter their new password. If
the old password is incorrect, the process *should* throw
an error.
=20
The only way Bob could change Susan's password is if he
knows the old one. That never happens, does it? ;)
=20
But that does give me the idea of an administrator-type
function to change another user's password, similar to
a DBA's use of 'alter user...'.
=20
And I know I am displaying my ignorance here, but what is
'SQL Injection'?
=20
Cheers,
Mike
=20
-----Original Message-----
From: Jared.Still_at_radisys.com [mailto:Jared.Still_at_radisys.com]
Sent: Monday, February 23, 2004 5:52 PM
To: oracle-l_at_freelists.org
Subject: RE: Slightly OT: Java in the DB
I'm not a security expert, but it seems to me there are some=20 exploits you would need to take into consideration.=20
SQL Injection comes to mind.=20
Also, if 2+ users have expired passwords, do you have a=20 mechanism to prevent user Bob (with an expired account )=20 from changing Susans password ( also expired ) ?=20
Are the passwords generated and then mailed to the correct user?=20
Jared=20
"Vergara, Michael (TEM)" <mvergara_at_guidant.com>=20 Sent by: oracle-l-bounce_at_freelists.org=20
02/23/2004 03:20 PM=20
Please respond to oracle-l=20
=20 To: <oracle-l_at_freelists.org>=20 cc: =20 Subject: RE: Slightly OT: Java in the DB
Ahhh...but that's the trick! The user's only authentication is=20
to the admin database. Once the user clicks on 'Submit' I=20
was intending to hand it off to a PL/SQL module owned by an=20
admin user. The 'real' user never sees that part.=20
=20
-----Original Message-----
From: Jared.Still_at_radisys.com [mailto:Jared.Still_at_radisys.com]
Sent: Monday, February 23, 2004 3:09 PM
To: oracle-l_at_freelists.org
Subject: RE: Slightly OT: Java in the DB
Creating an app that allows users to connect to the database as a=20 DBA to change a passwords sounds like it have good potential=20 for security holes.=20
You sure you want to do this?=20
How often does a user with an expired account really need to do this?=20
Jared=20
"Vergara, Michael (TEM)" <mvergara_at_guidant.com>=20 Sent by: oracle-l-bounce_at_freelists.org=20
02/23/2004 01:11 PM=20
Please respond to oracle-l=20
=20 To: <oracle-l_at_freelists.org>=20 cc: =20 Subject: RE: Slightly OT: Java in the DB
What I am trying to do seems so simple that I still cannot=20 believe I'm not done yet!
I want to build a web page where a 'normal' (non-privileged) user can go, enter his/her login, see a list of the DB's where he/she has an account, enter a new password, click a checkbox (or -boxes), and have the web page call a <Choose- -utility-here> routine to go out and update the user's password on the selected DBs.
I can do everything except get the DB update to work.
There's no daemon. This is intended to be an on-demand=20 utility. There's a central server/instance that has definitions to all the DBs in the TNSNAMES.ORA file. From this DB I harvest the user logins nightly, to build the list=20 to present to the user. I *know* I can connect, although to do the harvest I create a temporary database link, instead of using Java or whatever.
It's the silly step of changing the password. The problem is that the user may wait until after the p/w has expired, so they cannot log in. I found the OCINewPassword routine will do a password change even on a expired login. But ARG! This is the second (or is it third) method I've tried and they have all had one kind of issue or another.
Any more suggestions?
Thanks,
Mike
-----Original Message-----
From: Mladen Gogala [mailto:mladen_at_wangtrading.com]
Sent: Monday, February 23, 2004 12:21 PM
To: oracle-l_at_freelists.org
Subject: Re: Slightly OT: Java in the DB
Exactly what are you trying to do? For having a daemon (or demon,
for that matter) lurking in the darnkness of the central server and
resetting expired passwords, the daemon needs to maintain a permanent
connection with sufficient privileges to change any user's password,
typically, a dba connection. If your DBA doesn't use profiles, with=20
the idle time limitation, you can have a permanently connected process=20
which would change password as soon as it was signalled to him. The=20
question is: what would the password be changed to? There are strings
which are extremely hard tu guess (username, "qwerty", "password", =
"tiger")
and which would make your username secure. At one of my places of
work, I've witnessed the following story: a tech support expert leaves
a unix worsktation logged in, as root, and goes home at 6 PM, when =
cleaning=20
ladies entered the office. One of the cleaning ladies had a 14 years old
son which wanted to check the old joke with "rm -rf /". He found out=20
that it really does destroy everything on a unix system. Now, you are =
absent,
your password expires at 7 P.M. and there is an eager help desk person =
who
wants to test "drop tablescpace FIN_DATA including contents and =
datafiles=20
cascade constraints" that he or she has seen written somewhere. I'll =
leave=20
the rest of the story to you.
-- Archives are at http://www.freelists.org/archives/oracle-l/ FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html ----------------------------------------------------------------- ------_=_NextPart_001_01C3FAE9.75FE7786 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; = charset=3Diso-8859-1"> <META content=3D"MSHTML 6.00.2800.1226" name=3DGENERATOR></HEAD> <BODY> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2>No...each user has to enter their own old password into=20 a</FONT></SPAN></DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2>field on the web form, then enter their new password. =20 If</FONT></SPAN></DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2>the old password is incorrect, the process *should*=20 throw</FONT></SPAN></DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2>an error.</FONT></SPAN></DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2>The only way Bob could change Susan's password is if=20 he</FONT></SPAN></DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2>knows the old one. That never happens, does it? =20 ;)</FONT></SPAN></DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2>But that does give me the idea of an=20 administrator-type</FONT></SPAN></DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2>function to change another user's password, similar=20 to</FONT></SPAN></DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2>a DBA's use of 'alter user...'.</FONT></SPAN></DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2>And I know I am displaying my ignorance here, but what=20 is</FONT></SPAN></DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2>'SQL Injection'?</FONT></SPAN></DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2></FONT></SPAN> </DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2>Cheers,</FONT></SPAN></DIV> <DIV><SPAN class=3D147081515-24022004><FONT face=3D"Courier New" = color=3D#0000ff=20 size=3D2>Mike</FONT></SPAN></DIV> <DIV><SPAN class=3D147081515-24022004></SPAN> </DIV> <BLOCKQUOTE> <DIV class=3DOutlookMessageHeader dir=3Dltr align=3Dleft><FONT = face=3DTahoma=20 size=3D2>-----Original Message-----<BR><B>From:</B> = Jared.Still_at_radisys.com=20 [mailto:Jared.Still_at_radisys.com]<BR><B>Sent:</B> Monday, February 23, = 2004=20 5:52 PM<BR><B>To:</B> oracle-l_at_freelists.org<BR><B>Subject:</B> RE: = Slightly=20 OT: Java in the DB<BR><BR></FONT></DIV><BR><FONT face=3Dsans-serif = size=3D2>I'm=20 not a security expert, but it seems to me there are some = </FONT><BR><FONT=20 face=3Dsans-serif size=3D2>exploits you would need to take into=20 consideration.</FONT> <BR><BR><FONT face=3Dsans-serif size=3D2>SQL = Injection comes=20 to mind.</FONT> <BR><BR><FONT face=3Dsans-serif size=3D2>Also, if 2+ = users have=20 expired passwords, do you have a</FONT> <BR><FONT face=3Dsans-serif=20 size=3D2>mechanism to prevent user Bob (with an expired account = )</FONT>=20 <BR><FONT face=3Dsans-serif size=3D2>from changing Susans password ( = also expired=20 ) ?</FONT> <BR><BR><FONT face=3Dsans-serif size=3D2>Are the passwords = generated=20 and then mailed to the correct user?</FONT> <BR><BR><FONT = face=3Dsans-serif=20 size=3D2>Jared</FONT> <BR><FONT face=3Dsans-serif = size=3D2><BR></FONT><BR><BR><BR> <TABLE width=3D"100%"> <TBODY> <TR vAlign=3Dtop> <TD> <TD><FONT face=3Dsans-serif size=3D1><B>"Vergara, Michael (TEM)"=20 <mvergara_at_guidant.com></B></FONT> <BR><FONT = face=3Dsans-serif=20 size=3D1>Sent by: oracle-l-bounce_at_freelists.org</FONT>=20 <P><FONT face=3Dsans-serif size=3D1> 02/23/2004 03:20 = PM</FONT>=20 <BR><FONT face=3Dsans-serif size=3D2> </FONT><FONT = face=3Dsans-serif=20 size=3D1>Please respond to oracle-l</FONT> <BR></P> <TD><FONT face=3DArial size=3D1> = </FONT><BR><FONT=20 face=3Dsans-serif size=3D1> To: = =20 <oracle-l_at_freelists.org></FONT> <BR><FONT=20 face=3Dsans-serif size=3D1> cc: = =20 </FONT> <BR><FONT face=3Dsans-serif size=3D1> = =20 Subject: RE: Slightly = OT: Java=20 in the DB</FONT></TR></TBODY></TABLE><BR><BR><BR><FONT = face=3D"Courier New"=20 color=3Dblue size=3D2>Ahhh...but that's the trick! The user's = only=20 authentication is</FONT> <BR><FONT face=3D"Courier New" color=3Dblue = size=3D2>to the=20 admin database. Once the user clicks on 'Submit' I</FONT> = <BR><FONT=20 face=3D"Courier New" color=3Dblue size=3D2>was intending to hand it = off to a PL/SQL=20 module owned by an</FONT> <BR><FONT face=3D"Courier New" color=3Dblue = size=3D2>admin=20 user. The 'real' user never sees that part.</FONT> <BR><FONT=20 face=3D"Times New Roman" size=3D3> </FONT> <BR><FONT = face=3DTahoma=20 size=3D2>-----Original Message-----<B><BR>From:</B> = Jared.Still_at_radisys.com=20 [mailto:Jared.Still_at_radisys.com]<B><BR>Sent:</B> Monday, February 23, = 2004=20 3:09 PM<B><BR>To:</B> oracle-l_at_freelists.org<B><BR>Subject:</B> RE: = Slightly=20 OT: Java in the DB<BR></FONT><BR><FONT face=3Dsans-serif = size=3D2><BR>Creating an=20 app that allows users to connect to the database as a</FONT><FONT=20 face=3D"Times New Roman" size=3D3> </FONT><FONT face=3Dsans-serif = size=3D2><BR>DBA to=20 change a passwords sounds like it have good potential</FONT><FONT=20 face=3D"Times New Roman" size=3D3> </FONT><FONT face=3Dsans-serif = size=3D2><BR>for=20 security holes.</FONT><FONT face=3D"Times New Roman" size=3D3> = <BR></FONT><FONT=20 face=3Dsans-serif size=3D2><BR>You sure you want to do = this?</FONT><FONT=20 face=3D"Times New Roman" size=3D3> <BR></FONT><FONT face=3Dsans-serif = size=3D2><BR>How=20 often does a user with an expired account really need to do = this?</FONT><FONT=20 face=3D"Times New Roman" size=3D3> <BR></FONT><FONT face=3Dsans-serif=20 size=3D2><BR>Jared</FONT><FONT face=3D"Times New Roman" size=3D3>=20 <BR><BR><BR></FONT> <TABLE width=3D"100%"> <TBODY> <TR vAlign=3Dtop> <TD width=3D"2%"> <TD width=3D"54%"><FONT face=3Dsans-serif size=3D1><B>"Vergara, = Michael (TEM)"=20 <mvergara_at_guidant.com></B></FONT><FONT face=3D"Times New = Roman"=20 size=3D3> </FONT><FONT face=3Dsans-serif size=3D1><BR>Sent by:=20 oracle-l-bounce_at_freelists.org</FONT><FONT face=3D"Times New = Roman" size=3D3>=20 </FONT> <P><FONT face=3Dsans-serif size=3D1> 02/23/2004 01:11 = PM</FONT><FONT=20 face=3D"Times New Roman" size=3D3> </FONT><FONT = face=3Dsans-serif=20 size=3D2><BR></FONT><FONT face=3Dsans-serif size=3D1>Please = respond to=20 oracle-l</FONT><FONT face=3D"Times New Roman" size=3D3> = </FONT></P> <TD width=3D"42%"><FONT face=3DArial size=3D1> = =20 </FONT><FONT face=3Dsans-serif size=3D1><BR> = To:=20 = <oracle-l_at_freelists.org></FONT><FONT=20 face=3D"Times New Roman" size=3D3> </FONT><FONT = face=3Dsans-serif=20 size=3D1><BR> cc: = </FONT><FONT face=3D"Times New Roman" size=3D3> = </FONT><FONT=20 face=3Dsans-serif size=3D1><BR> = Subject: =20 RE: Slightly OT: Java in the=20 DB</FONT></TR></TBODY></TABLE><BR><FONT face=3D"Times New Roman"=20 size=3D3><BR><BR></FONT><FONT face=3D"Courier New" size=3D2><BR>What I = am trying to=20 do seems so simple that I still cannot <BR>believe I'm not done = yet!<BR><BR>I=20 want to build a web page where a 'normal' (non-privileged)<BR>user can = go,=20 enter his/her login, see a list of the DB's<BR>where he/she has an = account,=20 enter a new password, click a<BR>checkbox (or -boxes), and have the = web page=20 call a <Choose-<BR>the-utility-here> routine to go out and = update the=20 user's<BR>password on the selected DBs.<BR><BR>I can do everything = except get=20 the DB update to work.<BR><BR>There's no daemon. This is = intended to be=20 an on-demand <BR>utility. There's a central server/instance that = has<BR>definitions to all the DBs in the TNSNAMES.ORA file. = From<BR>this=20 DB I harvest the user logins nightly, to build the list</FONT> = <BR><FONT=20 face=3D"Courier New" size=3D2>to present to the user. I *know* I = can=20 connect, although to<BR>do the harvest I create a temporary database = link,=20 instead of<BR>using Java or whatever.<BR><BR>It's the silly step of = changing=20 the password. The problem is<BR>that the user may wait until = after the=20 p/w has expired, so they<BR>cannot log in. I found the = OCINewPassword=20 routine will do a<BR>password change even on a expired login. = But ARG!=20 This is<BR>the second (or is it third) method I've tried and = they have=20 all<BR>had one kind of issue or another.<BR><BR>Any more=20 suggestions?<BR><BR>Thanks,<BR>Mike<BR><BR><BR>-----Original=20 Message-----<BR>From: Mladen Gogala = [mailto:mladen_at_wangtrading.com]<BR>Sent:=20 Monday, February 23, 2004 12:21 PM<BR>To: = oracle-l_at_freelists.org<BR>Subject:=20 Re: Slightly OT: Java in the DB<BR><BR><BR>Exactly what are you trying = to do?=20 For having a daemon (or demon,<BR>for that matter) lurking in the = darnkness of=20 the central server and<BR>resetting expired passwords, the daemon = needs to=20 maintain a permanent<BR>connection with sufficient privileges to = change any=20 user's password,<BR>typically, a dba connection. If your DBA doesn't = use=20 profiles, with <BR>the idle time limitation, you can have a = permanently=20 connected process <BR>which would change password as soon as it was = signalled=20 to him. The <BR>question is: what would the password be changed to? = There are=20 strings<BR>which are extremely hard tu guess (username, "qwerty", = "password",=20 "tiger")<BR>and which would make your username secure. At one of my = places=20 of<BR>work, I've witnessed the following story: a tech support expert=20 leaves<BR>a unix worsktation logged in, as root, and goes home at 6 = PM, when=20 cleaning <BR>ladies entered the office. One of the cleaning ladies had = a 14=20 years old<BR>son which wanted to check the old joke with "rm -rf /". = He=20 found out <BR>that it really does destroy everything on a unix system. = Now,=20 you are absent,<BR>your password expires at 7 P.M. and there is an = eager help=20 desk person who<BR>wants to test "drop tablescpace FIN_DATA including = contents=20 and datafiles <BR>cascade constraints" that he or she has seen written = somewhere. I'll leave <BR>the rest of the story to=20 = you.<BR><BR>-------------------------------------------------------------= ---<BR>Please=20 see the official ORACLE-L FAQ:=20 = http://www.orafaq.com<BR>------------------------------------------------= ----------------<BR>To=20 unsubscribe send email to: oracle-l-request_at_freelists.org<BR>put = 'unsubscribe' in the subject line.<BR>--<BR>Archives are at=20 http://www.freelists.org/archives/oracle-l/<BR>FAQ is at=20 = http://www.freelists.org/help/fom-serve/cache/1.html<BR>-----------------= ------------------------------------------------</FONT><FONT=20 face=3D"Times New Roman" = size=3D3><BR><BR></FONT><BR><BR></BLOCKQUOTE></BODY></HTML> ------_=_NextPart_001_01C3FAE9.75FE7786-- ------=_NextPartTM-000-b7beff85-7f98-4385-99ee-fa28ca117a47-- ---------------------------------------------------------------- Please see the official ORACLE-L FAQ: http://www.orafaq.com ---------------------------------------------------------------- To unsubscribe send email to: oracle-l-request_at_freelists.org put 'unsubscribe' in the subject line. -- Archives are at http://www.freelists.org/archives/oracle-l/ FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html -----------------------------------------------------------------Received on Tue Feb 24 2004 - 09:16:24 CST
![]() |
![]() |