CIB e-bank

Megy megint a Java browser plugin körül a hiszti és az egyik ezzel kapcsolatos threadben @vszakats tett ki egy non-applet futtató scriptet a Pastebinre. A script a saját könyvtárába létrehoz egy AppletLocal.html file-t, egy jogosultságot definiáló cibib.policy file-t, aztán letölti curl segítségével a CIB-től a cibib.jar appletet, végül elindítja.
Az applet letöltése közben a curl néma, így azt érezheted, hogy nem történik semmi, pedig megy az, csak nem látod, szóval egy kis türelem, mire lejön a 2 megás applet.
Ha egyszer lent van az applet és kész a HTML és a policy file, akkor elég ez a miniscript az indításhoz:

#!/bin/sh
 
dir="`dirname $0`"
appletviewer $dir/AppletLocal.html -J-Djava.security.policy=$dir/cibib.policy > /dev/null &

Az egész hóbelevanchoz természetesen nem kell Java browser plugin, azokat nyugodtan kikapcsolhatod, ahogy Józsi írta.

Viktornak jövök egy sörrel, ha erre jár :)

Update #1: eti tuningolt a scripten kicsit. Az ő változata már megnézi, hogy módosult-e a CIB serverén az applet és csak akkor szedi le, ha igen (curl -z paramétere), továbbá kicsit kevesebb jogot adott neki, így természetesen etinek is jár a serital :)

Update #2: közben kiderült, hogy eti scriptjébe mégiscsak kell a több jog ahhoz, hogy az applet a Clipboardot használhassa. Én nem pöcsöltem vele, visszaadtam neki mindent, így most a script így néz ki.

Update #3: eti elolvasta az stderr kimenetet és mégiscsak a minimálisan szükséges jogot kapta az applet.

Update #4: eti közben kiókumulált még két jogosultsági beállítást, hogy legalább a plain text output működjön - sajna a PDF output továbbra sem jó, de már ez is valami! Az outputot az $output_dir-ben beállított folderbe pakolja majd az applet.

Update #5: újabb eti tweak, hogy defaultban az output foldert nyissa meg az applet export target könyvtárnak.

#!/bin/bash
# http://fns.csokolade.hu/2013/02/20/cib-e-bank/
 
#dir=~/tmp/cibib
dir="`dirname $0`"
output_dir=~/Desktop
 
[ -f $dir/AppletLocal.html ] || cat > $dir/AppletLocal.html <<EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" style="overflow: hidden">
<head>
<title> CIB Internet Bank </title>
</head>
<body style="overflow: hidden;margin: 0px">
 
<applet name="mainApplet" code="ebank.applet.MainApplet" width="800" height="600" mayscript archive="cibib.jar">
<param name="CABBASE" value="https://cibib.cab">
<param name="default_fontsize" value="11">
<param name="PACKED" value="TRUE">
<param name="java_arguments" value="-Dsun.java2d.noddraw=true -Dsun.java2d.d3d=false">
<param name="separate_jvm" value="true">
<param name="centerimage" value="true">
<param name="boxborder" value="false">
<param name="image" value="loader_hu.gif">
<param name="MAYSCRIPT" value="true">
<param name="BASEVIEW" value="1">
<param name="LOGLEVEL" value="50">
<param name="PROTOCOL" value="https">
<param name="SERVERURL" value="https://ibank.cib.hu/IBWBGateway/IBGatewayServlet">
<param name="PRINTERURL" value="https://ibank.cib.hu/IBWBGateway/IBPrintingServlet">
<param name="LANGUAGE" value="hu">
<param name="INITWIDTH" value="800">
<param name="INITHEIGHT" value="600">
</applet>
 
<!-- <param name="DEMOMODE" value="TRUE"> -->
 
	<script>
 
window.onerror = myErrorHandler;
 
function help(pageName)
{
	help_window = window.open(pageName, "help", "toolbar=0,location=0,resizable=0,status=0,menubar=0,scrollbars=0,hotkeys=1,fullscreen=0,width=500,height=380,marginheight=0,marginwidth=0,dependent=1");
	help_window.focus();
}
 
function printWindow(text)
{
	msgWindow=window.open("","_blank", "toolbar=1,location=0,resizable=1,status=1,menubar=1,scrollbars=1,fullscreen=0");
	msgWindow.document.open("text/html", "replace");
	msgWindow.document.write(text);
	msgWindow.document.close();
}
 
function saveWindow(text)
{
	msgWindow=window.open("","_blank", "toolbar=1,location=0,resizable=1,status=1,menubar=1,scrollbars=1,fullscreen=0");
	msgWindow.document.open("text/plain", "replace");
	msgWindow.document.write(text);
	msgWindow.document.close();
}
 
function myErrorHandler(msg, url, linenumber)
{
	alert(msg + ' at line: ' + linenumber);
	return true;
}
 
	</script>
</body>
</html>
EOF
 
cat > $dir/cibib.policy <<EOF
grant {
	permission java.net.SocketPermission "ibank.cib.hu:443", "connect,resolve";
	permission java.awt.AWTPermission "accessClipboard";
	permission java.io.FilePermission "$output_dir", "read,write";
    permission java.io.FilePermission "$output_dir/-", "read,write";
};
EOF
 
if [ -f $dir/cibib.jar ]; then
	modified_since="$(/bin/ls -lT $dir/cibib.jar | grep -o '[A-Z][a-z][a-z] [123 ][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9][0-9][0-9][0-9]')" && \
	curl -z "$modified_since" -o $dir/cibib.jar.new https://ibank.cib.hu/cibib.jar || exit 1
	if [ -f $dir/cibib.jar.new ]; then
		mv -v $dir/cibib.jar{,.old} || exit 1
		mv -v $dir/cibib.jar{.new,} || exit 1
	fi
else
	echo "Downloading latest CIB applet..."
	curl -o $dir/cibib.jar https://ibank.cib.hu/cibib.jar || exit 1
fi
 
 
appletviewer $dir/AppletLocal.html -J-Djava.security.policy=$dir/cibib.policy -J-Duser.dir=$output_dir > /dev/null &

2 thoughts on “CIB e-bank

  1. hron84

    A "curl --progress" ad egy progressbart a curl-hoz, ha eleirjatok, hogy betoltes, akkor van fancy statuszkijelzes terminalon.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>