Hi,

I use ScheduledExecutorService and cancel - I am going to submit and show you 
the changes this evening.

kind regards

Tobias

> Am 07.01.2016 um 10:50 schrieb Emond Papegaaij <emond.papega...@topicus.nl>:
> 
> Hi Tobias,
> 
> How do you terminate a thread? The only way to terminate a Thread from 
> outside is 
> Thread.stop, which is very dangerous. Thread.interrupt will only stop de 
> thread if that 
> thread supports interrupting. A simple 'while(true);' will not terminate. 
> Even if you manage 
> to terminate a script in a few seconds, this will not help against a script 
> like:
> 
> var i = 0, o = {};
> while(true) {
>    o[i++] = new Array(1000000);
> }
> 
> Don't understand me wrong, a resource like this can be useful in some 
> situations, but you 
> realy have to make sure it is not exposed to the user, or you will have to 
> deal with rogue 
> scripts.
> 
> Best regards,
> Emond
> 
>> On Thursday, January 07, 2016 10:25:30 AM Tobias Soloschenko wrote:
>> Hi Emond,
>> 
>> I already implemented a thread pool which terminates long running scripts. I
>> am going to submit it this evening.
>> 
>> Good hint with the class filter - I am going to have a look at it. Thanks!
>> 
>> kind regards
>> 
>> Tobias
>> 
>>> Am 07.01.2016 um 08:24 schrieb Emond Papegaaij
>>> <emond.papega...@topicus.nl>:
>>> 
>>> Hi Tobias,
>>> 
>>> This is a very nice feature indeed, but be very carefull when exposing
>>> server-side code to a client. What would happen if some user would post
>>> 'Java.type("java.lang.System").exit(0)'? A service like this must always
>>> be protected via some sort of whitelist filter. The Java Scripting API
>>> has support for ClassFilter, which can be used for this.
>>> 
>>> Another problem is a DoS attack. A user could post several non-terminating
>>> scripts, eating all available processing threads or claim insane ammounts
>>> of memory. These types of attacks are much harder to protect against.
>>> Some scripting engines allow inserting custom code before and/or after
>>> every statement. This could used to protect against non- terminating
>>> scripts. However, preventing OutOfMemory is very difficult (if not
>>> impossible). There are simply too many ways memory can be claimed and no
>>> way of checking the ammount used.
>>> 
>>> Best regards,
>>> Emond Papegaaij
>>> 
>>>> On Wednesday, January 06, 2016 06:40:53 PM Tobias Soloschenko wrote:
>>>> Hi guys,
>>>> 
>>>> I am currently playing around a bit with the nashorn implementation of
>>>> Java 8.
>>>> 
>>>> I just implemented a ResourceReference to show up cool features. :-)
>>>> 
>>>> Features:
>>>> * Post javascript against the resource reference which is executed on
>>>> server side and optional enriched with user scoped objects that can be
>>>> accessed (read / write)
>>>> * Access to user objects can be setup in the corresponding method

Reply via email to